【发布时间】:2013-07-15 17:34:11
【问题描述】:
#include<cstdio>
int main() {
int a[5] = {1,2,3,4,5};
int *ptr = (int*)(&a+1);
printf("%d %d" ,*(a+1),*(ptr-1));
}
这里a+1的地址位置被类型转换为点ptr;
我试过 ptr = (int)&a 它指向数组.. 由于指针地址存储在某个位置,因此指针 ptr 指向该位置 如何使用 *ptr 引用数组元素的位置
程序的输出是 2 5 你能解释一下 5 是怎么输出的吗
【问题讨论】:
-
你在哪里没有指向指针的指针。
-
至于为什么
&a不返回指向指针的指针,参见例如this old question。 -
@JoachimPileborg 谢谢你的链接..