逗号运算符

更新时间:2024-02-19 00:40

逗号运算符在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。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}