数组指针的疑惑

来源:互联网 发布:40本网络禁书本地下载 编辑:程序博客网 时间:2024/04/29 03:24
# include <stdio.h>int main(void){int a[5] = {1, 2, 3, 4, 5};int *ptr = (int *)(&a+1);printf("%0x\n", &a);printf("%0x\n", &a+1);printf("%0x\n", ptr);//指向数组最后一个元素的下一个地址空间printf("%d\n", *ptr);//垃圾值printf("%0x\n", ptr-1);printf("%0x\n", ptr-2);printf("%d %d\n", *(a+1), *(ptr-1));printf("%d %d\n", *a+1, *(a+1));return 0;}/*a和&a的地址相同,但表示的意义是不同的a表示的意义应该是第一个元素的地址&a表示的是整个数组的地址,以这一个地址表示所有的元素地址,代表的是一个整体*/

result:

0 0