C++ 中 ++i 和 i++ 的區別是什麼?
在 ++ 的字尾和字首版本之間存在很大的區別。
- 在字首版本(即 ++i)中,i 的值會被遞增,並且表示式的值為 i 的新值。所以基本上它先遞增,然後為表示式賦值。
- 在後綴版本(即 i++)中,i 的值會被遞增,但是表示式的值為 i 的原始值。所以基本上它先為表示式賦值,然後遞增變數。
示例
讓我們看一些程式碼來更好地理解 -
#include<iostream> using namespace std; int main() { int x = 3, y, z; y = x++; z = ++x; cout << x << ", " << y << ", " << z; return 0; }
輸出
這將給我們輸出 -
5, 3, 5
為什麼會這樣?讓我們詳細看看 -
- 將 x 初始化為 3
- 將 y 賦值為我們透過計算表示式 x++ 得到的值,即遞增前 x 的值,然後遞增 x。
- 遞增 x,然後將 z 賦值為我們透過計算表示式 ++x 得到的值,即遞增後的 x 的值。
- 列印這些值
廣告