看了一些資料,指向二維陣列的指標定義方式並不是直接定義指標的指標
int a[3][6];
int **p=a; 像這樣定義是錯誤的
因為a代表著除了第一列以外的列數的維數大小,如a+1的位址就是a[1]的位址,也就是a[1][0]的位址,而p僅是整形指標的指標,沒跨越一次就是4位元組,因此他們的大小是不匹配的,所以這樣子直接等於號是不正確的。
要真正的定義方式應概是定義指向n維陣列的指標,n就是除第一維的另外維度,
如上面的指標定義應該為
int (*p)[6];
p=a;
這樣子就 可以就可以通過p以下標形式來訪問陣列。
二維陣列與指向二維陣列的指標
指標陣列 是陣列元素為指標的陣列,本質為陣列。int p n 陣列指標 是指向陣列首元素的指標,其本質為指標。int p n 的優先順序高於指標運算子 操縱二維陣列 int a i j int pa j pa a a 代表該二維陣列的首位址 pa 代表該二維陣列的首位址 pa 也代表該二維陣列的首位...
C語言二維陣列指標(指向二維陣列的指標)
二維陣列的定義 int matrix 見圖的操作那篇文章裡面的定義 或者這篇文章提供了另外一種方法。二維陣列在概念上是二維的,有行和列,但在記憶體中所有的陣列元素都是連續排列的,它們之間沒有 縫隙 以下面的二維陣列 a 為例 int a 3 4 從概念上理解,a 的分布像乙個矩陣 0 1 2 3 4...
C C 指向二維陣列的指標
設有整型二維陣列a 3 4 如下 0 1 2 3 4 5 6 7 8 9 10 11 它的定義為 int a 3 4 設陣列a的首位址為1000,各下標變數的首位址及其值如圖所示。c語言允許把乙個二維陣列分解為多個一維陣列來處理。因此陣列a可分解為三個一維陣列,即a 0 a 1 a 2 每乙個一維陣...