C语言提供一种特殊的运算符——逗号运算符。用它将两个(或多个)表达式连接起来。
如:3+5,6+8
上式称为逗号表达式。逗号表达式的一般形式为
表达式1,表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值
例如代码如下
#include<stdio.h>
void main()
{
int a=2,b=4,c=6,x,y;
y=(x=a+b,b+c); //逗号运算符
printf("y=%d,x=%d",y,x);
}
y等于后面第二个表达式的值 即y等于b+c=10 x等于6
逗号运算符是所有运算符中级别最低的 始终要记住这点 在所有的运算符中分为15级 逗号运算符是15级排在最后面
再例如代码如下
#include<stdio.h>
void main()
{
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c); //逗号运算符
printf("y=%d,x=%d",y,x);
}
代码修改了一个部分 在x=a+b,和b+c之间增加了一个括号 意义就不同了 由于括号的运算符优先级比逗号高,同时赋值运算符的优先级别也高于逗号运算符。所以y就直接等于了第一个表达式的值,y=x=a+b=6,x=6。C语言表达能力强,其中一个重要方面就在于它的表达式类型丰富,运算符功能强,因而C使用灵活,适应性强。
由于c的逗号运算符用的比较少 容易忘记这个知识点 刚好遇到这个问题 就加以解决