ポインタ、アドレス
#include <stdio.h> main () { int a[5] = {1,2,3,4,5}; int *p; int i; p = a; //配列の先頭ポインタを取得 p = &a[0]の省略形 for (i = 0; i < 5; i++) { printf("%d\n",*(p+i)); printf("%d\n",p+i*5/2); } }
- ポインタを使って、ポインタが指しているaの中身を表示させるとともに、そのアドレス(の先頭)も表示させている。アドレスに整数として1加えるとアドレスの値は4増える。上のように5/2を加えると、1回目は整数2に相当するアドレス数値8増え、2回目は整数5−2=3に相当するアドレス数値12増えている。
- このようなポインタのメリットは?→たとえばこちら
ryamada@CFS10 ~ $ ./pointer.exe 1 2665540 2 2665548 3 2665560 4 2665568 5 2665580 ryamada@CFS10 ~