C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:
子表达式1, 子表达式2, ..., 子表达式N
例如:
A + B, C = B, C++
逗号运算符的优先级是所有运算符中级别最低的,通常配合 For 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,C++ 的值(C 自增之前的值)即为该表达式的值。
逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算。因此,上例中,C 得到 B 的值后,才进行自增运算。
下面我们来看一些小例子:
Var = 235,567;
乍一看您可能以为这个语句有语法问题,其实它是完全正确的!首先运算逗号左边的子表达式 Var = 235,Var 被赋值为 235;然后运算右边的子表达式,其值为 567,故而整个逗号表达式的值是 567。可别以为 Var 得到的值是 235567 或者 567 哦!如果写成:
Var = (235,567);
则 Var 得到的值是 567。
逗号也被用作分隔符(Separator),例如:
Int I_var1 = 1, I_var2 = 2, I_var3 = 3;
Printf("%D %D %D
", I_var1, I_var2, I_var3);
上例中的逗号是分隔符,而不是逗号运算符。 |