#2176. C++-编译-错将条件运算符==写成=,同时左值刚好为变量
C++-编译-错将条件运算符==写成=,同时左值刚好为变量
Background
Description
错将条件运算符==写成=,同时左值刚好为变量
有些编译器会给一个**warning:using the result of an assignment as a condition without parentheses [-Wparentheses]**,然而许多的编译器可能会忽略掉这个潜在的错误
这里不报错的原因是,赋值运算符=是有返回值的,返回的是赋的值,而判断语句会将所有不是0的值都看成true
(比如a=3这句语句的返回值是3,如果a=3放在条件语句中,其返回值3会被认为是true)
int a=3;
if (a=3) cout<<a; //错误的
if (a==3) cout<<a; //改正后
Format
Input
Output
Samples
Limitation
1s, 1024KiB for each test case.