#includeint main()
; //陣列指標 (二維陣列)
char (*p)[4]; //陣列指標
p=c;
//乙個指標 指向乙個 至多有4個字元 的 字串陣列 該陣列儲存在棧區
//該字串陣列的記憶體空間已經分配好了 而且這些字元在 記憶體空間中是連續的
char *pch[6] = ; //指標陣列
//乙個陣列 儲存6個指標 每個指標指向乙個常量區字串
//相同點:
//指標陣列 和 陣列指標 的 元素 都可以通過 解引用 和 下標運算 得到
for(int i=0; i<3; i++)
printf("%s %s\n", p[i], *(p+i));
printf("\n");
for(int i=0; i<3; i++)
printf("%s %s\n", pch[i], *(pch+i));
printf("\n");
// 不同點1 :
// 乙個的字串儲存在棧區 乙個儲存在常量區
// 常量區的值不可修改
printf("修改前: %s\n", p[0]);
p[0][0] = '6'; //正確
printf("修改後: %s\n\n", p[0]);
pch[0][0] = '2'; //錯誤
//常量區的值不可修改
// 不同點2:
p[1] = "22"; //錯誤
//禁止這樣修改
//因為修改後可能導致字串陣列長度改變
//整個二維陣列的記憶體就不再是連續的了
printf("修改前: %s\n", pch[0]);
pch[0] = "666"; //正確
//該指標指向乙個新的 常量區字串
printf("修改後: %s\n\n", pch[0]);
printf("%s\n", pch[0]);
return 0;
}
陣列指標和指標陣列
陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指向...
陣列指標和指標陣列
一 定義 陣列指標 陣列指標 是指向陣列 首元素的位址的 指標,其本質為指標 這個指標存放的是陣列首位址的位址,相當於2級指標,這個指標不可移動 指標陣列 陣列元素為指標的陣列,其本質為陣列。二 舉例 int a 3 4 這個無需多說,就是乙個 二維陣列 int p 4 就相當於int p 4 它就...
陣列指標和指標陣列
這兩個名字不同當然所代表的意思也就不同。我剛開始看到這就嚇到了,主要是中文太博大精深了,整這樣的簡稱太專業了,把人都繞暈了。從英文解釋或中文全稱看就比較容易理解。指標陣列 array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標 a pointer to an ar...