C++ 多次赋值

2023-03-20 15:53 更新

对同一变量多次赋值在C++里是合法的,这一点之前并没有多说。第二次赋值的效果是用新值替换掉旧值。

int fred = 5;
cout << fred;
fred = 7;
cout << fred;

这段代码输出57,因为第一次打印fred时,其值是5;第二次打印时其值为7。

这种多次赋值的机制正是我把变量形容为值的容器的原因。在为变量赋值时,修改的是容器里的内容,如图所示:

enter image description here

当存在对同一变量的多次赋值时,区分赋值语句和判等语句就显得尤为重要。C++使用=符号做赋值操作,因此很容易把诸如a=b这样的语句理解为判等语句。事实不是这样!

首先,相等是可交换的,而赋值不可以。比如,数学上若a=7则7=a,但是在C++里语句a=7;是合法的,7=a则不合法。

此外,数学上的等式永远为真。若现在a=b,则a永远等于b。在C++里,赋值语句可以使两个变量相等,但这两个变量未必总是相等的。

int a = 5;
int b = a; // 现在a和b相等
a = 3; // a和b不再相等

第三行改变了a的值,但未改变b的值,所以二者不再相等。在很多编程语言中,为避免混淆,赋值用另一种符号代替,如<-或:=。

尽管多次赋值非常有用,但尚需谨慎使用。如果变量的值在程序的不同部分总是在改变,代码就会非常难以阅读和调试。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号