输出是啥? C编程[关闭]
Posted
技术标签:
【中文标题】输出是啥? C编程[关闭]【英文标题】:What is the output? C Programming [closed]输出是什么? C编程[关闭] 【发布时间】:2013-06-20 04:37:46 【问题描述】:刚刚提出了一个我不知何故忽略的基本编程问题。
int a = 2, b = 3, c = 5;
if (!a == b)
c = a--;
else
c = ++b;
printf("%d %d %d\n", a, b, c);
我认为输出应该是 2 4 4。 任何人都可以帮助验证我是对还是错以及为什么?
【问题讨论】:
编译运行代码会发生什么? 答案是here。 这并不能回答 为什么。 【参考方案1】:你是对的:!a
给你0
和0 == b
是0
,
所以,c = ++b
给出了b = 4
和c = 4
。 a
没有改变。
【讨论】:
【参考方案2】:由于!
的优先级高于==
,if
的条件将为假((!a) == b) -> (0 == 3)
。所以 else 会被执行,并且 b 和 c 都会被设置为 4。你是对的。
【讨论】:
以上是关于输出是啥? C编程[关闭]的主要内容,如果未能解决你的问题,请参考以下文章