I i++意思
在C語言中,i i++
這樣的表達式是非法的,因為++運算符要求有一個左值(lvalue),而i
只是一個變數名,它不是一個左值。如果你想要對變數i
進行自增操作,你應該使用i++
或者++i
。
i++
和++i
的區別在於它們的副作用發生的時間不同:
i++
:先使用i
的值,然後i
的值加1(後置++)。++i
:先將i
的值加1,然後使用i
的值(前置++)。
例如:
int i = 1;
// 使用i++
printf("i++: i = %d, i++ = %d\n", i, i++); // 輸出:i++: i = 1, i++ = 1
printf("i++: i = %d\n", i); // 輸出:i++: i = 2
// 使用++i
printf("++i: i = %d, ++i = %d\n", i, ++i); // 輸出:++i: i = 2, ++i = 3
printf("++i: i = %d\n", i); // 輸出:++i: i = 3
在這個例子中,i++
首先列印i
的值(1),然後i
自增,所以i++
的值仍然是1。接著列印i
的值,這時i
已經自增,所以列印結果是2。
對於++i
,首先i
自增,然後列印i
的值(2),所以++i
的值是3。接著列印i
的值,這時i
已經自增,所以列印結果是3。