C++ 多次賦值

2023-03-20 15:53 更新

對同一變量多次賦值在C++里是合法的,這一點之前并沒有多說。第二次賦值的效果是用新值替換掉舊值。

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

這段代碼輸出57,因為第一次打印fred時,其值是5;第二次打印時其值為7。

這種多次賦值的機制正是我把變量形容為值的容器的原因。在為變量賦值時,修改的是容器里的內(nèi)容,如圖所示:

enter image description here

當存在對同一變量的多次賦值時,區(qū)分賦值語句和判等語句就顯得尤為重要。C++使用=符號做賦值操作,因此很容易把諸如a=b這樣的語句理解為判等語句。事實不是這樣!

首先,相等是可交換的,而賦值不可以。比如,數(shù)學(xué)上若a=7則7=a,但是在C++里語句a=7;是合法的,7=a則不合法。

此外,數(shù)學(xué)上的等式永遠為真。若現(xiàn)在a=b,則a永遠等于b。在C++里,賦值語句可以使兩個變量相等,但這兩個變量未必總是相等的。

int a = 5;
int b = a; // 現(xiàn)在a和b相等
a = 3; // a和b不再相等

第三行改變了a的值,但未改變b的值,所以二者不再相等。在很多編程語言中,為避免混淆,賦值用另一種符號代替,如<-或:=。

盡管多次賦值非常有用,但尚需謹慎使用。如果變量的值在程序的不同部分總是在改變,代碼就會非常難以閱讀和調(diào)試。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號