【发布时间】:2018-09-03 15:40:52
【问题描述】:
谁能解释一下这段代码?如何将值仅分配给变量 m 但输出是针对所有变量更改的。这里还有逻辑运算符和增量运算符的作用。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=-3, j=2, k=0, m;
m = ++i || ++j && ++k;
printf("%d%d%d%d\n", i, j, k, m);
return 0;
}
【问题讨论】:
-
请记住,逻辑运算符执行short-circuit evaluation,并且任何非零值都被视为真。
-
此代码中没有位运算符。而且您似乎不明白前缀增量运算符的作用?
-
你期待什么?哪里有问题?您是否阅读过逻辑运算符并知道前/后增量是如何工作的?什么与您的教科书或其他可靠的文档相矛盾?
-
不相关:函数声明器中的空括号是一个过时的特性,并且在该语言的进一步版本中将被删除。不要习惯这种不好的做法。我们使用适当的原型样式声明器,即
int main(void)。当然,这适用于所有函数声明(包括定义)。
标签: c logical-operators