这不是我要问的问题,但我在重构一些实验代码时发现了这个问题,所以想到在这里发帖。
int *p = <assign some memory>
p[0] = 3;
int n = 24;
printf(" %d ", n/*p);
输出是什么?
答案 0 :(得分:7)
/*p);
是评论的开头)printf(" %d ", n / *p);
,则应打印8。答案 1 :(得分:2)
你可能要做的事情的答案就像其他人所说的一样。您可能希望下次重新进行测验。
int three = 3;
int *p = &three;
int n = 24;
printf(" %d ", n / *p);
答案 2 :(得分:1)
假设你的意思是“n /(* p)”,它是合法的(如果部分分配了一个int)。 “p [0] = 3”将3放在单长度数组p的唯一单元格中。所以“* p”可以看作是一个int,实际上是p [0](参见通常的数组算法)。所以这将打印24/3 = 8。