C語言_指標和陣列的幾種訪問形式

OldBoy~發表於2017-12-28

敲幾行程式碼來看看幾種訪問的形式~

#include <stdio.h>;
int
main() { int arr[5] = {0, 1, 2, 3, 4, 5}; //初始化5個元素的一維陣列 int *p = arr; //定義一個指向陣列arr的指標 ,陣列型別不需要引用地址符& printf("arr[2]:%d\n", arr[2]); //①:通過下標直接訪問 [通過陣列名的指標形式訪問 ] printf("arr[2]:%d\n", *(p+2)); //②:p本身代表一個地址(首地址),p地址本身是第0個,+ 2是第三個地址,然後用*號括起來,取值 printf("arr[2]:%d\n", *(arr+2)); //③:因為是陣列型別,本身arr是一個首地址,p和arr都是首地址,直接地址+2,然後取值 printf("arr[2]:%d\n", p[2]); //④:既然p是首地址,那麼也可以當做陣列,直接下標訪問。[通過指標變數名的陣列下標形式訪問] //---------分割線 printf("%d\n",*p); //輸出為0,陣列的首元素。 printf("%d\n",*arr); //輸出為0,陣列的首元素。 printf("%d\n",p); //輸出為地址,陣列的地址。 printf("%d\n",arr); //輸出為地址,陣列的地址。 return 0; }

編譯執行結果截圖如下:

 

相關文章