/* e02999ab 環境太郎 ポインタと配列 pointer3.c gcc -o pointer3 pointer3.c ./pointer3 */ #include <stdio.h> int main( void ) { int a[5] = { 4, 7, 2, 10, 8 }; int * ap = &( a[0] ); printf( "&(a[0]) is %p\n", &(a[0]) ); /* aの最初の要素のアドレスを表示 */ printf( "array a is %p\n", a ); /* 配列の名前はそのまま配列のアドレスとして扱われる */ /* ポインタ値[n] と *(ポインタ値 + n) は同じ意味 */ /* 配列名aを使って配列aの要素を表示してみる */ printf( "%d, %d\n", a[0], *(a + 0) ); printf( "%d, %d\n", a[1], *(a + 1) ); printf( "%d, %d\n", a[2], *(a + 2) ); printf( "%d, %d\n", a[3], *(a + 3) ); printf( "%d, %d\n", a[4], *(a + 4) ); printf( "-------------\n" ); /* ポインタapを使って配列aの要素を表示してみる */ printf( "%d, %d\n", ap[0], *(ap + 0) ); printf( "%d, %d\n", ap[1], *(ap + 1) ); printf( "%d, %d\n", ap[2], *(ap + 2) ); printf( "%d, %d\n", ap[3], *(ap + 3) ); printf( "%d, %d\n", ap[4], *(ap + 4) ); return 0; } |