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版权协议,转载请附上原文出处链接和本声明。