配列とポインタを用いて各要素を表示するプログラム
#include <stdio.h> int main(void) { int i; int vc[5] = {10, 20, 30, 40, 50}; int *ptr = &vc[0]; for (i = 0; i < 5; i++) { printf("vc[%d]=%d %d[vc]=%d ", i, vc[i], i, i[vc]); printf("*(vc+%d)=%d *(%d+vc)=%d\n", i, *(vc+i), i, *(i+vc)); } putchar('\n'); for (i = 0; i < 5; i++) { printf("*(ptr+%d)=%d *(%d+ptr)=%d ", i, *(ptr+i), i, *(i+ptr)); printf("ptr[%d]=%d %d[ptr]=%d\n", i, ptr[i], i, i[ptr]); } return (0); }
実行結果
vc[0]=10 0[vc]=10 *(vc+0)=10 *(0+vc)=10 vc[1]=20 1[vc]=20 *(vc+1)=20 *(1+vc)=20 vc[2]=30 2[vc]=30 *(vc+2)=30 *(2+vc)=30 vc[3]=40 3[vc]=40 *(vc+3)=40 *(3+vc)=40 vc[4]=50 4[vc]=50 *(vc+4)=50 *(4+vc)=50 *(ptr+0)=10 *(0+ptr)=10 ptr[0]=10 0[ptr]=10 *(ptr+1)=20 *(1+ptr)=20 ptr[1]=20 1[ptr]=20 *(ptr+2)=30 *(2+ptr)=30 ptr[2]=30 2[ptr]=30 *(ptr+3)=40 *(3+ptr)=40 ptr[3]=40 3[ptr]=40 *(ptr+4)=50 *(4+ptr)=50 ptr[4]=50 4[ptr]=50