C语言基础学习运算符-逗号表达式

逗号表达式

C语言提供一种特殊的运算符——逗号运算符,用它将几个表达式连接起来,如:

21+5, 3*7

形成逗号表达式,逗号表达式的一般形式为:

表达式1, 表达式2,表达式3...表达式n

求解过程是:先求解表达式1,再求解表达式...最终表达式n的值即为整个逗号表达式的值。如上述逗号表达式的例子,表达式的值为21。我们来看下例表达式:

i = 12*5, i*2

对于此表达式,部分人会认为先求解12*5的值,然后求解i*2的值,若i的原值为1,则逗号表达式的值为2,i最终为2。部分人认为,i = 12*5是一个赋值表达式,与表达式i*2用逗号相连,构成一个逗号表达式。因此应先算i = 12*5的值,即i等于60,再计算i*2的值,最终表达式的值为120。


对于这两种看法,判断对错的标准就是赋值运算符和逗号运算符的优先级哪个高。赋值运算符的优先级高于逗号运算符,因此后一种计算方法是正确的。关于运算符的优先级,我们会在总结中详细的讲述。

注意,不要把所有的逗号都当成运算符。如下语句中的逗号只是用来分隔参数而已:

printf("%d,%d,%d", a, b, c);

 更多学习内容,就在码芽网http://www.mayacoder.com/lesson/index

猜你喜欢

转载自octopole.iteye.com/blog/2327150