小编pre*_*rem的帖子

数组a和&a的起始地址

在以下两行中,

char a[5]={1,2,3,4,5};
char *ptr=(char *)(&a+1);
printf("%d",*(ptr-1));
Run Code Online (Sandbox Code Playgroud)

这在屏幕上打印5个.当使用a而不是&a时,

char a[5]={1,2,3,4,5};
char *ptr=(char *)(a+1);
printf("%d",*(ptr-1));
Run Code Online (Sandbox Code Playgroud)

这打印1

a和&a都是数组的起始地址.所以为什么这有区别?

char*ptr =&a + 1;

显示警告.

c pointers

7
推荐指数
2
解决办法
5269
查看次数

标签 统计

c ×1

pointers ×1