20140326 二维数组 数组名取地址
1、二维数组
http://col1.blog.163.com/blog/static/1909775192012514111830946/
int a[2][3];
| a[0][0] | a[0][1] | a[0][2] |
| a[1][0] | a[1][1] | a[1][2] |
- a相当于是二维数组的首地址,可以理解成一个数组指针(指向一个包含3个元素的数组)
- *a和a[0]相当于是首元素的地址(*a+1要跳一个int),a相当于数组的地址(a+1要跳三个int)
- a[1]相当于a+1表示&a[1]的地址,三者打印结果相同。
- a[0]+1相当于&a[0][1]相当于*(a+0)+1
- a[1]+1相当于&a[1][1]相当于*(a+1)+1
#include<stdio.h> void main() { int a[2][3]={1,2,3,4,5,6}; printf("%d\n",a[1]); printf("%d\n",a+1); printf("%d\n",&a[1]); printf("%d\n",(a[0]+1)); printf("%d\n",*a+1); printf("%d\n",&a[0][1]); }
2、数组名取地址
int a[10];
&a+1增加了10个int类型的字节的长度了;a+1就是就是a[1]的地址

浙公网安备 33010602011771号