您的位置:首页 > 其它

数组 a 与 &a 的区别联系

2016-06-10 00:16 204 查看

int a[10];

那么 a 的值是 数组首元素的首地址

&a 的值也是上面的

但是区别

&a数组a的首地址

对指针加1 得到是下一个元素的地址,一个类型为T,+1 是以sizeof(T)为移动单位的

#include<stdio.h>

int main(int argc,char *argv[])

{

int a[5] = {1,2,3,4,5};

int *ptr = (int *)(&a + 1);//指针移动了相当一个数组,又将地址进行强转

printf("%x\n",&a[5]);

printf("%x\n",ptr);

printf("%d\n %d\n",*(a +1),*(ptr-1)); //指针移动一个int型大小,即就是一个元素

return 0;

}

<span style="font-size:24px;">#include<stdio.h>
int main(int argc,char *argv[])
{
int a[5] = {1,2,3,4,5};
int *ptr = (int *)(&a + 1);
printf("%x\n",&a[5]);
printf("%x\n",ptr);
printf("%d\n %d\n",*(a +1),*(ptr-1));
return 0;
}</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c 数组