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>