今天看到乙個問題:int a[3][3];int **p;p=a;會不會有問題?
貌似覺得沒問題,還是知識的基礎和本質沒有掌握透徹的原因。
分析:二維陣列實質上是陣列的陣列,可以退化為陣列的指標,但不是指標的指標。
比如:int a[3][3],如果寫在形參裡,可以寫成int (*p)[3],但不是 int **p。
上題中,int a[3][3]中的a的型別是(*)[3],而p的型別是**,它們的型別並不匹配,所以不可以p=a。
可以修改為:int a[3][3];int (*p)[3];p=&a;
1)int a[3][3]; 陣列的陣列,a指向 int [3][3]
2)int p1[3]; p1指向 int [3],只要每行3個int即可。
3)int *p2[3]; 指標陣列,即陣列p2[3]是int *型的,陣列的每個元素都是乙個指標。
4)int (*p3)[3]; 陣列指標(行指標)。
5)int **p4; 指標的指標。
可以如下賦值:p3=p1;p4=p2。因為它們的型別匹配。陣列的陣列與陣列的指標可以,指標陣列與指標的指標可以。
還看到一句話:[ ]比 * 的優先順序高,有道理。
陣列,指標,指標陣列,陣列指標
指標是在32位系統下佔四個位元組,64位系統下佔八個位元組的一種型別,指標指向的內容可以是常量,變數,函式,結構體,指標本身,陣列,等等.一級指標 一級指標常常在函式傳參時使用,可傳的引數有一維陣列,常量指標,函式指標等等都可以 但我們要注意不要在函式中,通過改變形參的指向來達到改變實參指向的效果,...
指標, 指標的指標, 陣列, 指標陣列, 陣列指標
指標 int a 10 int p a 指標的指標 int b 20 int p b int p2p p 簡單陣列 int c 10 整數陣列,含有10個整數元素 也就是說每乙個元素都是整數 指標陣列 int p 10 指標陣列,含有10個指標元素 也就是說每乙個元素都是指標 陣列指標 int p ...
指標,陣列指標,指標陣列
1.指標 指標可以看成乙個變數,指標所佔記憶體的大小和處理器的定址空間大小有關,32位處理器指標大小為4個位元組,64位處理指標大小為8個位元組。int p 定義乙個int型別的指標,p就可以看成乙個變數,p的值為0,表示p指向0位址 p也是占用記憶體的,編譯器在棧上為p分配記憶體,儲存p的值0,0...