【发布时间】:2017-04-04 14:48:01
【问题描述】:
typedef struct {
char a[6];
} foo;
printf("%d", (foo*)0 + 7);
为什么会打印出 42? 这个语法是如何工作的? foo* 到底是什么?
【问题讨论】:
-
因为 42 是所有问题的答案.... ;)
-
该代码有问题;字符串需要结束
"。 -
它不会编译...
-
它不可能“工作”。发布minimal reproducible example。
-
这段代码什么也不做。它不会编译。一旦进行了必要的添加,它就会调用未定义的行为。任何答案都是正确的。问题是:问题是什么?阅读How to Ask,提供minimal reproducible example 并说明您的具体问题。