逗号运算符
(((总结一下就是,表达式都执行,返回值是最后一个)))
(以下摘自网络)
逗号运算符是指在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。
使用逗号运算符是为了把几个表达式放在一起。
整个逗号表达式的值为系列中最后一个表达式的值。
从本质上讲,逗号的作用是将一系列运算按顺序执行。
最右边的那个表达式的值将作为整个逗号表达式的值,其他表达式的值会被丢弃。例如:
var = (count=19, incr=10, count+1);
在这里,首先把 count 赋值为 19,把 incr 赋值为 10,然后把 count 加 1,最后,把最右边表达式 count+1 的计算结果 20 赋给 var。上面表达式中的括号是必需的,因为逗号运算符的优先级低于赋值操作符。
尝试运行下面的实例,理解逗号运算符的用法。
#include <iostream>
using namespace std;
int main()
{
int i, j; j = 10;
i = (j++, j+100, 999+j);
cout << i; return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
1010
上面的程序中,j 最初的值为 10,然后自增到 11,接着再加上 100,最后 j 再加上 999,得出结果 1010。
一、用法:
1、当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一个表达式的值。
main()
{int a,s,d;
s=2;
d=3;
a=12+(s+2,d+4);
}
先算括号内的值:s+2=4,d+4=7;括号内应为(4,7),括号内取值只取最后一个,如果没有括号则取第一个;a=12+7=19。
x=(y=3,(z = ++y+2) +5);
是首先把y赋值为3,把y递增为4,然后把4加上2,把结果6赋值给z,接下来把z加5最后把x赋为结果值11。
2、注意事项:逗号运算符( , )是C语言运算符中优先级最低的一种运算符。
二、其它用法:
1、在for里面的应用:
int i;int j;
for(i=0,j=0;i<5;i++,j++)
2、当分隔符:int i,j;
扩展资料
运算符优先级:
1、优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
2、相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
3、基本的优先级需要记住:指针最优,单目运算优于双目运算。如正负号。先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 && 7等价于 (1 << (3 + 2))&&7.逻辑运算最后计算。