相关疑难解决方法(0)

"if"条件下的变量赋值

我最近失去了一些时间来弄清楚我的代码中的错误是由一个错字引起的:

if(a=b)
Run Code Online (Sandbox Code Playgroud)

代替:

if(a==b)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何特殊情况你想要在if语句中为变量赋值,或者如果没有,为什么编译器不会发出警告或错误?

c++ if-statement

29
推荐指数
7
解决办法
6万
查看次数

无意中使用=而不是==

看起来

if (x=y) { .... }
Run Code Online (Sandbox Code Playgroud)

代替

if (x==y) { ... } 
Run Code Online (Sandbox Code Playgroud)

是许多邪恶的根源.

为什么并非所有编译器都将其标记为错误而不是可配置警告?

我有兴趣找出构造if (x=y)有用的案例.

c c++ compiler-construction programming-languages

12
推荐指数
8
解决办法
2482
查看次数