スポンサーリンク

i++ 配列を参照した後インクリメント

例えば、下記の場合です。
この場合は、配列xの要素を参照した後、iがインクリメントされます。

	printf("x[i++] = %d\n", x[i++]);

下記がサンプルコードになります。
  $ cat sample1.c 
#include <stdio.h>
#define SIZE 4

int x[SIZE] = {0, 1, 2, 3};

int main(){
	int i;
	
	i = 0;
	printf("i = 0をセット\n");
	printf("x[i]   = %d\n", x[i]);
	printf("x[i++] = %d\n", x[i++]);
	printf("x[i]   = %d\n", x[i]);
			
	return 0;
}
 </stdio.h>

下記が実行結果になります。
$ gcc -o sample sample1.c
 $ ./sample 
i = 0をセット
x[i]   = 0
x[i++] = 0
x[i]   = 1

スポンサーリンク

++i インクリメントした後に配列を参照

例えば、下記の場合です。
この場合は、iがインクリメントされた後に、配列xの要素が参照されます。

	printf("x[++i] = %d\n", x[++i]);

下記がサンプルコードになります。
 $ cat sample2.c 
#include <stdio.h>
#define SIZE 4

int x[SIZE] = {0, 1, 2, 3};

int main(){
	int i;
	
	i = 0;
	printf("i = 0をセット\n");
	printf("x[i]   = %d\n", x[i]);
	printf("x[++i] = %d\n", x[++i]);
	printf("x[i]   = %d\n", x[i]);
			
	return 0;
}
</stdio.h>

下記が実行結果になります。
 $ gcc -o sample sample2.c
 $ ./sample 
i = 0をセット
x[i]   = 0
x[++i] = 1
x[i]   = 1

スポンサーリンク