遞增遞減
遞增
遞增運算子是可以將整數類型(含 _Bool
及 enum
)、實浮點類型及指標類型進行數值修改的操作。
遞增分為前綴形式與後綴形式,以下分別說明。
前綴遞增
前綴遞增,利用 ++{變數}
進行變數操作行為。
int main()
{
int i = 10;
int j = ++i;
// 此處,i = 11; j = 10;
}
++i
的意義在於:在賦值給變數 j
的操作結束後,將變數 i
的值 +1
後綴遞增
後綴遞增,利用 {變數}++
進行變數操作行為。
int main()
{
int i = 10;
int j = i++;
// 此處,i = 11; j = 11;
}
i++
的意義在於:在此行操作之前,先將變數 i
的值 +1
後,再將其賦值給變數 j
遞減
遞減與遞增類似,一樣分為前綴遞減與後綴遞減。
以下一併說明。
int main()
{
int i = 10;
int j = --i;
// 此處,i = 9; j = 10;
}
int main()
{
int i = 10;
int j = i--;
// 此處,i = 9; j = 9;
}
未定義行為(Undefined Behavior)
在一個敘述內(每個 ;
代表一個敘述結尾),僅應該對同一個變數做一次操作。
若在一個敘述內,對同一個變數進行兩次(含)以上的操作,即為未定義行為。
// 未定義行為
// 錯誤示範
int main()
{
int i = 10;
int j = i++ + ++i; // 未定義行為
int k = ++i + 1; // 未定義行為
}