a++是字尾加,++a是字首加。
兩者區別在於:a++是先返回其a的值,再進行自加1的運算;++a是先對於a的值自加1,再返回其值;
如下圖**所示:
// demo0.cpp : 定義控制台應用程式的入口點。
//#include
"stdafx.h"
#include
using
namespace std;
intmain()
結果如下:
原因在於:
第乙個++a為,將a的值10加1之後輸出。又因為cout能夠改變儲存的a的值,所以現在a的值為11;
接下來進行a++的操作時,a先輸出之後才進行的自加操作,由於沒有乙個變數來接收a自加後的值,所以輸出為11。
將兩行**調換順序更容易理解其原理。
int
main()
輸出結果如下圖所示:
執行第乙個a++時,輸出的資料為10,但是在執行完語句時,a進行了自加(加1)的操作,所以此時a儲存的值是11;
再執行++a時,是對於a加+之後再輸出,由於cout能儲存a現在的狀態,所以a現在是11,即在a=11的狀態下進行自加操作,加1結束後,輸出a現在的值為12。
有疑問可加qq1297716447,說明來意,互相交流學習。
C 中as 和 is 的區別
1.as在轉換的同時兼判斷相容性,如果無法進行轉換,則 as 返回 null 沒有產生新的物件 而不是引發異常。有了as就不要再用try catch來做型別轉換的判斷了。因此as轉換成功要判斷是否為null。2.as是引用型別型別的轉換或者裝箱轉換,不能用與值型別的轉換。如果是值型別只能結合is來強...
C 中的 和 的區別
比如c 中乙個類 class student 裡面有個公有 成員變數 test 如果你宣告這個類的物件student s 那麼你要對test操作要用 s.test 如果你宣告這個類的物件student s為指標型別的話,那麼你要對test操作要用 s test 或者 如果乙個指標型變數指向乙個類 結...
C 中的const 和C中的區別
c 中的const 一 和c中的區別 c 中的const正常情況下是看成編譯期的常量,編譯器並不為const分配空間,只是在編譯的時候將期值儲存在名字表中,並在適當的時候折合在 中.所以,以下 include using namespace std int main for int i 0 i si...