数组名 和 数组指针是不一样的,
今天遇到这样一道题
int a[] = {1,2,3,4};
int *p = (int*)(&a + 1);
printf("%d/n",*(p-1));
求输出结果 ?
//输出结果
4
//VC6.0测试
a 与 &a 的异同
相同点
(int)a == (int)&a //都是指向同一地址的指针
不同点
1)虽然指向同一地址,但是a是数组的指针,而&a则是字符串类型的指针
2)a+n相当于a这个地址向后移动n个a数组元素类型的字节大小, 而 &a + n 相当于 &a 这个地址向后移动n个a类型的数组