数组地址和指针(关于指针指向数组和存储模式)

对于指针和数组看过C语言的书籍有点困惑

int main()
{
int a[5] = {0,1,2,3,4};
int* ptr1 = (int*)(&a + 1);
int* ptr2 = (int*)((int)a+1);
printf("%x,%x\n", ptr1[-1], *ptr2);
return 0;

}
初次看见感觉有点懵,尝试去理解,最终都不是VS运行的答案,求助于度娘,书籍和各路神仙。解释如下图,各位看客老爷们仅供参考,如有不对希望各位不吝赐教。
在这里插入图片描述
希望能帮助到一些碰到此种类型题目的朋友,共同探讨努力进步。

猜你喜欢

转载自blog.csdn.net/qq_39161836/article/details/113447495