数组名a和&a初认识

来源:互联网 发布:js修改input type属性 编辑:程序博客网 时间:2024/06/04 18:35
a其实代表的是数组中首元素的地址,即a[0]的地址,&a代表的是整个数组的起始地址。
int a[5]中
a+1=a+sizeof(int);   加4
&a+1=a+5*sizeof(int); 加20
sizeof(a)=20 表示整个数组的大小
sizeof(&a)=4 表示地址大小

测试(环境vs2012):
一、
char a[5]={'1','2','3','4','9'};
int b[5]={2,3,4,5,6};
printf("%d,%d\n",sizeof(&a),sizeof(&b));


输出结果为:4,4    得到的是地址的大小


二、
char a[5]={'1','2','3','4','9'};
int b[5]={2,3,4,5,6};
printf("%d,%d\n",sizeof(a),sizeof(b));


结果为:5,20   得到的是整个数组的大小




三、
char a[5]={'1','2','3','4','9'};
int b[5]={2,3,4,5,6};
printf("%d,%d\n",sizeof(&a),sizeof(&b[0]));


输出结果为:4,4
0 0
原创粉丝点击