#include<iostream>
#include<string>
int main(){
using namespace std;
int x=1;
cout << "At first x = " << x << endl;
cout << "x++ = "<< x++ ;
cout << ",x++ = " << x++ << endl;
cout << "So, x = " <<x << "." << endl;
cout << "And then, x = " << x << endl ;
cout << "x++ = " << x++ << ", x++ = " << x++;
system("pause");
return 0;
}
看出差異了嗎?
在前段中, x++ 作為後置版本會先印出處理前的"值"之後再進行遞增,
所以 x++ = 1 會先被印出來才遞增一次!
至於編譯器的習慣使得 x++ =4 會印在前面這點請看以下解釋:
x++並不是一個完整的運算式,所謂"完整運算式"是整個指定敘述,
而分號 " ; " 會標記出循序點,
所以 C++ 唯一保證的就是程式執行到下面敘述以前, x 會被遞增兩次!
C++並不會只是 x 需要在每一個子運算式計算後做遞增,
或者是當所有計算式計算後才做遞增,
因此我們要盡量避免用這樣的敘述。
沒有留言:
張貼留言