【发布时间】:2017-03-26 09:48:45
【问题描述】:
以下执行代码给出的输出为“6”。
#include<stdio.h>
int main()
{
int a[]={7,5,3,4,1,6};
int *ptr=(int*)(&a+1);
printf("%d",*(ptr-1));
return (0);
}
我不明白行部分“(int*)(&a+1)”是什么意思。
【问题讨论】:
-
这意味着“我不害怕未定义的行为。我会进行强制转换,直到它编译为止。”这不是你应该做的事情。