【发布时间】:2015-08-06 15:16:27
【问题描述】:
#include<stdio.h>
#include<string.h>
int main()
{
char c[]="HELLO2014";
char *p;
printf("%s\n",p+p[3]-p[1]);
return 0;
}
上面的 C 代码在 Answer 中输出 14。请解释一下如何?
【问题讨论】:
-
这似乎让事情变得比他们需要的更困难......你到底想完成什么?
-
此代码导致未定义的行为,因为
p+p[3]超出了c的范围。