#include typedef int (*tp_parry1)[3] ;
#define uart_printf printf
void f1(void)
,};// a : 二維陣列名 , equal : 指向一維陣列的指標
tp_parry1 p = a;
int (*q)[3] = a;
//int (*t)[2] = a;//warning: initialization from incompatible pointer type
//int** x = a; // critical error, may lead to segmentation fault. no space for ptrs.
//指標結合律:1 (*q)括號最高優先順序,表示q是乙個指標。
// 2 向右 , 表示指向乙個陣列
// 3 右邊沒有了,向左,表示該陣列的元素是int型。
uart_printf("a00:%d\n",a[0][0]);
uart_printf("a01:%d\n",a[0][1]);
uart_printf("a02:%d\n",a[0][2]);
uart_printf("a10:%d\n",a[1][0]);
uart_printf("a11:%d\n",a[1][1]);
uart_printf("a12:%d\n",a[1][2]);
uart_printf("p00:%d\n",a[0][0]);
uart_printf("p01:%d\n",a[0][1]);
uart_printf("p02:%d\n",a[0][2]);
uart_printf("p10:%d\n",a[1][0]);
uart_printf("p11:%d\n",a[1][1]);
uart_printf("p12:%d\n",a[1][2]);
uart_printf("q00:%d\n",a[0][0]);
uart_printf("q01:%d\n",a[0][1]);
uart_printf("q02:%d\n",a[0][2]);
uart_printf("q10:%d\n",a[1][0]);
uart_printf("q11:%d\n",a[1][1]);
uart_printf("q12:%d\n",a[1][2]);
#if 0
//segmentation fault
uart_printf("x00:%d\n",x[0][0]);
uart_printf("x01:%d\n",x[0][1]);
uart_printf("x02:%d\n",x[0][2]);
uart_printf("x10:%d\n",x[1][0]);
uart_printf("x11:%d\n",x[1][1]);
uart_printf("x12:%d\n",x[1][2]);
#endif
}int main()
/*root@oucaijun:/work/dcc# gcc *.c; ./a.out
a00:0
a01:1
a02:2
a10:10
a11:11
a12:12
p00:0
p01:1
p02:2
p10:10
p11:11
p12:12
q00:0
q01:1
q02:2
q10:10
q11:11
q12:12
*/
先定義乙個二維陣列array以及指向它的指標p_array:
chararray[3][1000] ;
typedef char char_arry2[3][1000] ;
typedef char_arry2* pchar_arry2 ;
pchar_arry2p_array= &array;
十進位制絕對位址
指向元素
指向一維陣列
指向一維陣列
指向一維陣列
指向二維陣列
十六進製制位址
872369208array[0]&array[0]
array
p_array[0]p_array
33ff4c38
872369209
array[0]+1
33ff4c39
.
.
.
.
872370208
&array[0]+1
array+1
p_array[0]+1
33ff5020
.
.
.
872372208
p_array+1
33ff57f0
array ==&array[0]
二維陣列 指標陣列與陣列指標
一 首先我們從字面意思理解一下什麼是指標陣列什麼是陣列指標 1 指標陣列 本質是乙個陣列,陣列中的每乙個元素是乙個指標。2 陣列指標 本質是乙個指標,而指標指向乙個陣列。二 我們該怎麼區分指標陣列和陣列指標?1 總共有三種表示形式 int p 4 和int p 4 和int p 4 表面看起來是不是...
C語言指標與二維陣列
includeint main int p 3 null p array p is same as array,the use of p is same as array.so p is the two devision pointer same as array int p1 array 0 0 ...
C語言指標與二維陣列
二維陣列在概念上是二維的,有行和列,但在記憶體中所有的陣列元素都是連續排列的,它們之間沒有 縫隙 以下面的二維陣列 a 為例 int a 3 4 從概念上理解,a 的分布像乙個矩陣 0 1 2 3 4 5 6 7 8 9 10 11 但在記憶體中,a 的分布是一維線性的,整個陣列占用一塊連續的記憶體...