Last Update 2023/05/28
増分演算子(++)の前置・後置の挙動比較
sample.c
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 0;
/* 前置増分演算子(++)によるループ */
while (++i < 3)
{
printf("前置 i=%d\n", i);
}
printf("\n");
i = 0;
/* 後置増分演算子(++)によるループ */
while (i++ < 3)
{
printf("後置 i=%d\n", i);
}
return EXIT_SUCCESS;
}
実行結果
$ gcc -Wall sample.c
$ ./a.out
前置 i=1
前置 i=2
<--- 加算後(iが3の時点)でwhile文条件式の評価(ループ実行無し)
後置 i=1
後置 i=2
後置 i=3 <--- 加算前(iが2の時点)でwhile文条件式の評価
実行環境
GNU bash, version 5.1.16
GCC-12.2.0
GNU C Library 2.36
GNU Binutils 2.39
GCC-12.2.0
GNU C Library 2.36
GNU Binutils 2.39
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。