今天讀書會的時候,帶學弟練功遇到幾個以前沒想過的問題,C 語言的 array 可以使用指標來存取。
int a[5]={0,1,2,3,4};
printf("value of a = %d (%X)n",a,a);
printf("value of a[0] = %dn",*a);
上面可以看到 a 裡面存的不是數值,而是記憶體位置。這個記憶體位置指到的值就是陣列第一個整數的值。
既然知道陣列指標的用法,就可以利用指標去存取陣列的內容。
printf("a[1] = %dn",a[1]);
printf("a[1] = %dn",*(a+1));
printf("a[1] = %dn",*((int *) (((void *) a)+sizeof(int)*1)));
第三種用法通常用不到,看看就好。