逗号表达式困惑

今天看到一个这样的程序

#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里用什么逗号表达式!!闲的蛋疼吗?

猜你喜欢

转载自blog.csdn.net/baishuiniyaonulia/article/details/81140522