c语言有特殊的运算符——逗号运算符。 用它把两个公式连接起来。 例如:
3、6、8
被称为逗号表达式,也称为“逐次评价运算符”。 逗号公式的一般形式如下
式1、式2
解逗号公式的过程是先解公式1再解公式2。 整个逗号表达式的值是表达式2中的值。 例如,上面的逗号表达式" 35,68 "的值为14。 另外,逗号式
a=35,a4
解开这个公式,读者可能会有两种不同的理解。 一种是认为“35,a4”是逗号表达式,首先求出该逗号表达式的值,如果a的原始值是3,则逗号表达式的值是12,并将12分配给a,所以最后的a的值是12。 另一种认为“‘a=35’是赋值表达式”,“a4”是另一个表达式,两者由逗号连接,构成一个逗号表达式。 哪个是对的? 赋值运算符的优先级高于逗号运算符,因此必须首先求解a=35。 也就是说,以“a=35”为公式。 经过计算和代入得到的a的值为15,然后解开a4变成60。 整个逗号表达式的值为60。
一个逗号表达式还可以与另一个表达式组成新的逗号表达式。 例如,如(a=35,a4 )所示,如果a 5首先计算a的值为15,然后进行a4的运算为60 ),再进行a 5为20,则整个表达式的值为20。
逗号表达式的常用格式可以扩展为
式1、式2、式3……式n
其值为公式n的值。
逗号运算符是所有运算符中级别最低的。 因此,以下两个表达式用作不同的:
x=(a=3,63 ) ) )。
x=a=3,6a
第一个是将逗号表达式的值分配给x的赋值表达式,x的值为18。 第一个是逗号表达式,包括赋值表达式和算术表达式,x值为3。
其实,逗号公式就是把几个公式“连接”起来。 在许多情况下,使用逗号表达式的目的是单独获取单个表达式的值,而不一定需要获取和使用整个逗号表达式的值。 逗号表达式在循环语句(for语句)中最常用。
请注意,逗号并不是所有地方都显示为逗号运算符。 例如,函数参数也用逗号分隔。 例如
printf('%d、%d、%d '、a、b、c );
上一行中的“a、b、c”不是逗号表达式。 这是printf函数的三个参数,参数之间用逗号分隔。
如果改写为
printf('%d、%d、%d )、) a、b、c )、b、c );
那么,“(a,b,c )”是逗号表达式,其值等于c的值。 括号中的逗号是逗号运算符,而不是参数之间的分隔符。 括号中的内容全部用作printf函数的参数。
c语言表现力强,其重要方面之一是表现型丰富,算子功能强,使c使用灵活适应性强