【发布时间】:2013-07-09 05:35:12
【问题描述】:
如果有人能解释一下,那将很有帮助。
int main()
{
int a=0;
if(a=0)
printf("a is zero\t");
else
printf("a is not zero\t");
printf("Value of a is %d\n",a);
return 0;
}
这个输出是
a is not zero Value of a is 0
【问题讨论】:
-
你的代码有错:
if(a=0)应该是if(a==0)。 -
标题说“再次分配零”所以第二次分配可能是故意的。但由于普遍缺乏明确性和研究,我投票结束。
-
@AndreyT 问题是消息的文本是倒着的……如果它们倒过来就好了。
-
@Barmar 除非有评论说
// I explicitly intend assignment here... 这与这个问题的标题非常接近。 -
@Ani: Er... 如果在逻辑上下文中被视为
false(例如在if下),则值为零。因此,您的if的else分支被占用。为什么您在该分支中写"a is not zero"对您来说确实是一个问题。是你,出于某种奇怪的原因将这些消息“向后”排列。仅此而已。
标签: c