前提:
陣列指標是指標
指標陣列是陣列
示例:
int
*p1[5]
;
和
int
(*p1)[5
];
前者為指標陣列 後者為陣列指標。
涉及運算符號優先順序:陣列下標比取值運算子*的優先順序更高。自右向左結合。先結合陣列下標.
先談指標陣列:
int
*p1[5]
;
指向整型資料的指標變數。0 1 2 3 4 (int *)
**結論:**指標陣列是乙個陣列,每乙個陣列元素存放乙個指標變數。
**示例:
#include
intmain()
;int i;
for(i=
0;i<
5;i++
)return0;
}
這一段與陣列的輸出迴圈體大致相似。
for
(i=0
;i<
5;i++
)
只是陣列名換成指標變數而已。所以指標陣列依然是陣列。
指標陣列運用到字串上相當便捷(可以不用二維陣列)
初始化(字串打雙引號)之後輸出注意字串輸出給位址即可 不用打 * 這個取值符號直接寫為p[i]
陣列指標
int
(*p1)[5
];
指標變數p1指向整個陣列,0 1 2 3 4(int),且資料型別為整型資料。
結論:陣列指標是乙個指標,它指向的是乙個陣列。
**示例:
#include
intmain()
;int
(*p)[5
]=&temp;
int i;
for(i=
0;i<
5;i++
)return0;
}
切記不可這樣初始化:
int (*p)[5]=;
編譯器不會報錯但輸出內容是錯的。
陣列指標也是如此,定義為char時輸出不加*
陣列指標與指標陣列的區別
一 陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,...
陣列指標與指標陣列的區別
一 陣列指標 也稱行指標 定義int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指...
陣列指標與指標陣列的區別
陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指向...