如题所述
二维数组的指针机制:就是按照一维分布的。
如:int
arr[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int*
p
=
arr[0];就是说*p从1开始,*p[1]就是a[0][1],*p[2]就是a[0][2],等等,知道*p[11]就是a[3][2]
你说的那四个值一样,那是肯定的,都是计算机为这个二维数组分配内存的首地址,
1,是给二级指针再取地址,就变成三级地址。
2,3,都一样
是一级指针
4,表示去一般变量的地址。
不懂的可以再问。
如:int
arr[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
int*
p
=
arr[0];就是说*p从1开始,*p[1]就是a[0][1],*p[2]就是a[0][2],等等,知道*p[11]就是a[3][2]
你说的那四个值一样,那是肯定的,都是计算机为这个二维数组分配内存的首地址,
1,是给二级指针再取地址,就变成三级地址。
2,3,都一样
是一级指针
4,表示去一般变量的地址。
不懂的可以再问。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-04-14
1
2
3
4
5
6
7
8
9
10
11
12
数组名就是这个数组的首地址,
&arr
*arr取的都是首地址的内容
1
arr[0]
是数组的第一行的首地址
&arr[0]
取得就是第一行的首地址的内容
1
arr[0][0]
数组的第一个元素的地址
即
1
&arr[0][0]
取得就是第一个元素
1
2
3
4
5
6
7
8
9
10
11
12
数组名就是这个数组的首地址,
&arr
*arr取的都是首地址的内容
1
arr[0]
是数组的第一行的首地址
&arr[0]
取得就是第一行的首地址的内容
1
arr[0][0]
数组的第一个元素的地址
即
1
&arr[0][0]
取得就是第一个元素
1