【发布时间】:2011-04-20 12:56:16
【问题描述】:
这不是我要问的问题,但我在重构一些实验性代码时发现了这个问题,所以想把它贴在这里。
int *p = <assign some memory>
p[0] = 3;
int n = 24;
printf(" %d ", n/*p);
输出是什么?
【问题讨论】:
-
看不到在 printf 未关闭和未关闭的多行注释的情况下如何编译。但是 24 如果你想注释掉 p。
-
我猜你的意思是“n / *p”,我猜它应该会给出“8”。我也猜这不是你得到的,否则你不会问。
-
@Azodious:
int *p = 3;不应该在没有强制转换的情况下在 C++ 中编译。只有初始化为 0 才有效。 -
它应该打印“8”。 ideone.com/cUScK
-
对你来说只是一个旁白,但“怀疑”与“问题”并不相同。
标签: c++ c pointers programming-languages logic