C++_逗号运算符

C++中逗号可以作为一个运算符,其作用是连接左右两个表达式,
如:3+5,6+8;
其会先执行逗号左边的表达式然后再执行逗号右边的表达式,两个表达式都计算完以后,以右边的表达式作为最终表达式的结果。
例如:

#include <iostream>

int main()
{
    int a;
    //这里加括号是因为赋值运算等级要高于逗号运算
    a = (3 + 5, 8 + 8);
    std::cout << "a="<<a<<std::endl;
}

其结果为a=16;
又如:

#include <iostream>

int main()
{
    int a,b;
    b=(a = 3 * 5, a * 4);

    std::cout << "a="<<a<<std::endl;
    std::cout << "b=" << b << std::endl;
}

其结果是a=15,b=60.
这是因为在逗号表达式(a = 3 * 5, a * 4)中,赋值运算符的优先级别高于逗号运算符,因此先求解a=3×5,此时经过计算与赋值后a的值为15;
之后进行求解a×4,得到整个表达式(a = 3 * 5, a * 4)的值为60,再赋值给b,因此b=60,此时由于并非是赋值运算,所以a的值依旧是15。


版权声明:本文为qq_43530773原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。