【发布时间】:2020-09-17 21:50:06
【问题描述】:
我预计 if(b=5) 会出错,因为 if 语句中使用了赋值运算符。
Code:
#include <stdio.h>
int main() {
int a=10, b=10;
if(b=5)
a--;
printf("%d, %d", a, b--);
return 0;
}
【问题讨论】:
-
首先选择一种语言。 C 和 C++ 是两种 非常 不同的语言。其次,你的“怀疑”是什么?你的问题是什么?第三,除非来源是可信的,否则不要直接从任何地方使用代码。当心the cargo cult programming trap。
-
另外,请花一些时间阅读the help pages,接受SO tour,阅读How to Ask,以及this question checklist。并了解如何edit您的问题。
-
您期待什么错误?为什么?
-
b = 5 实际上是一个表达式,所有表达式都给出一个真值。没有错误,但编译器会给出以下警告:C6282:不正确的运算符:布尔上下文中的常量赋值。考虑改用“==”
-
在
if条件内进行赋值是有效的 C。分配评估为分配的值。除了分配的0值之外的所有内容都会评估为true条件。
标签: c if-statement logical-operators assignment-operator