pointer3.c
/*
ポインタと配列
pointer3.cpp
*/
#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) );
getchar( );
return 0;
}