今天看到一个这样的程序
#include <iostream>
using namespace std;
int main()
{
int a = 8;
if(a==2,3)
cout << "error" << endl;
return 0;
}
我的第一反应是,error肯定不会输出,但是结果error居然输出了。
思考了一会儿,才想明白,原来这里是一个逗号表达式,把a==2,3
看做(a==2,3)
就想明白了,逗号表达式只取最后一个值,也就是只取3,因此这个条件判断语句永远都成立。
吐槽一下:if里用什么逗号表达式!!闲的蛋疼吗?