//指標陣列
char
* p[2]
=;for(
int i =
0; i <
2; i++
)
根據c語言運算優先等級表,指標也是乙個變數,這裡的 char* p[2] 指的是定義了乙個一維陣列,陣列裡存放的是指標變數,而指標指向的則是後面字串的首個字元的位址。後面printf()中,列印字串只需要給出首個字元地位址即可。
int temp1[2]
=;int* sp1 = temp1;
//一維陣列指標,這個指標,其實指向的是乙個變數,指標的值是這個變數的位址
for(
int i =
0; i <
2; i++
)
這裡是只一維陣列指標,這個指標,其實指向的是乙個變數,指標的值是這個變數的位址。
int
(*sp2)[2
];//指向陣列的指標,指標裡儲存的是這個陣列的位址,所以對於一維陣列,應該 &temp
sp2 =
&temp1;
for(
int i =
0; i <
2; i++
)
這裡由於()的作用,是定義了乙個指向陣列的指標,指標裡儲存的是這個陣列的位址,所以對於一維陣列,應該 &temp
int temp2[2]
[3]=
,};int
(*sp3)[3
];//指向陣列的指標,指標裡儲存的是這個陣列的位址,所以對於二維陣列,陣列名就是陣列的位址
sp3 = temp2;
for(
int i =
0; i <
2; i++
)printf
("\n");
}
這裡定義的是指向陣列的指標,指標裡儲存的是這個陣列的位址,所以對於二維陣列,陣列名就是陣列的位址。對於高維陣列指標,有前輩說用處不多,這裡就當時頭腦風暴吧。
總之就是要分請宣告的不同情況,明白指向的目標是什麼。
論陣列與指標 03 陣列指標 步長
這裡a是個二維陣列的陣列名,相當於乙個二級指標常量 二維陣列名與二級指標毫無關係 初學者常常混淆 p是乙個指標變數,它指向包含5個int元素的一維陣列,此時p的增量以它所指向的一維陣列長度為單位 p i 是一維陣列a i 0 的位址 p 2 3表示a 2 3 位址 第一行為0行,第一列為0列 p 2...
C 指標陣列與陣列指標
說實話,c語言真的很讓人蛋疼,它不像物件導向的語言,我們重心在設計程式上。而使用c語言,你不僅要考慮程式的設計,你還要考慮很多他的使用細節,不然一不小心你怎麼死的都不知道。但是,個人感覺,c語言的魅力是其他任何語言都比不了的!繼續看。陣列指標 範例 typedef int aint5 5 typed...
C 指標陣列與陣列指標
陣列指標 也稱行指標 陣列指標 a pointer to an array,即指向陣列的指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣...