當前位置:吉日网官网 - 盛世收藏 - int a=1 b=a++ + ++a

int a=1 b=a++ + ++a

事實上不是上面說的那樣,把b的賦值語句分成兩部分,即(a++)+(++a),其中,先執行++a,則a的值現在變成了2;

a++在當前語句裏拿的是a的值(此時a值為2),而不是a自增的值,因為此時的(a++)是a的拷貝,壹個臨時變量int temp裏放著的,而在a所在的內存裏,這個自增是已經完成了的,註意是a的內存,不是那個臨時變量temp!

所以這個式子的結構就清晰了,b=a+a(此時的a是++a後的結果,是2),b=4。

再看a自己本身的值,這個比較有趣,a經過了++a,變成了2,而a++改變的是內存中的a,不是臨時變量,所以,此時的a=2+1=3。

總結壹下,後++是拷貝的a原本的值到臨時變量temp裏面,在本條語句中用的是temp值,而非a的內存值,如果此時改變a的內存值(比如++a,本條語句內自增生效,改變a的內存值),對於temp沒有任何影響,所以就有了後++下條語句生效(執行完本條語句後,temp變量即自動銷毀),前++本條語句生效的說法。

這個前++和後++的具體運行過程,等妳學了C++會有很深的了解。

  • 上一篇:IE收藏夾不顯示。這是怎麽回事?
  • 下一篇:廣西三江金紋石有收藏價值嗎
  • copyright 2024吉日网官网