配列
値の領域が連続している状態を指します。これを型のサイズ分だけ繰り返して参照させる仕掛けとして、変数に""として表記すると容易に参照できる仕掛けを配列と呼びます。
注意点としては内に型サイズの移動個数を指定できますが、最初は移動しないので0となります。また型の宣言時の[]内の値は領域の末端を指すので1個多め値となります。1つ多めの最初の位置なので、一個前の末端なんです。必要個数だと思えば一安心。ただ、知らないと闇注意報
さらに、アドレスに対して足し算しても同様になりますので知ってて得するTIPSです。
#include <stdio.h> int main(int argc,char **argv) { int a[3]; // int型を3個分 int i; a[0] = 10 ; // 1番目に10をセット。 a[1] = 11 ; // 2番目に11をセット。 a[2] = 12 ; // 3番目に12をセット。 for(i=0;i<3; i++){ printf( "%d : %x %d %d\n",i,a+i,*(a+i),a[i]); } *(a) = 20 ; // 1番目に20をセット。 *(a+1) = 21 ; // 2番目に21をセット。 *(a+2) = 22 ; // 3番目に22をセット。 for(i=0;i<3; i++){ printf( "%d : %x %d %d\n",i,a+i,*(a+i),a[i]); } }
■結果
$ gcc main.c $ ./a.out 0 : 11bcc380 10 10 1 : 11bcc384 11 11 2 : 11bcc388 12 12 0 : 11bcc380 20 20 1 : 11bcc384 21 21 2 : 11bcc388 22 22