逗号运算符
数学术语
逗号运算符在C语言和C++语言中,可以把多个表达式用逗号联接起来(或者说,把这些表达式用逗号分开),构成一个更大的表达式。其中所构成的表达式称为逗号表达式。逗号表达式中用逗号分开的表达式分别求值,以最后一个表达式的值作为整个表达式的值。
简介
逗号运算通常用于 for 结构的括号内的第一个表达式,用于给多个局部变量赋值
例如下面是用于求从1 到 100之间对 n2 求和的程序:
int main() {
int n, sum;
for(n = 1, sum = 0; n <= 100; n++) {
sum += n * n;
}
return 0;
}
其中的“n=1, sum = 0” 就是使用逗号运算符构成的一个逗号表达式。
注意事项
如果在语句中同时用了逗号运算符和赋值运算符,则需要特别注意,赋值运算符的优先级高于逗号运算符。看下面这两个例子:
int a1, b = 2, c = 7, d = 5; // 第1行
a1 = (++b, c--, d+3); // 第2行
本例,对于第2行,由于用逗号分开的三个表达式被包含在括号内,所以先计算这个括号内的表达式,再进行赋值。括号内的表达式的最终值应该是最后一个表达式的值,也就是 (d+3) 的值,为 8,所以 a1 被赋值为 8。
int a1, b = 2, c = 7, d = 5; // 第1行
a1 = ++b, c--, d+3; // 第2行
本例,对于第2行,由于赋值运算符的优先级高于逗号运算符,所以“a1=++b” 实际是逗号表达式中的一个子表达式,虽然最终表达式的值虽然也为 8,求值之后,“++b” 的值为3,a1被赋值为 3,而整个逗号表达式的值为 8。
参考资料
最新修订时间:2024-02-19 00:40
目录
概述
简介
注意事项
参考资料