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;
}

[^] [<<] [<] [>]