逗号运算符是什么意思?

时间:2017-05-31 14:45:40

标签: c variable-assignment

之前我已经声明了变量及其值,但之前我从未在一行中完成过。

如果我写

A, B = 0.0, 2;

这是否意味着

A = 0 

B = 2? 

1 个答案:

答案 0 :(得分:5)

此表达式

A, B = 0.0, 2;

是带逗号运算符的表达式(这里是两个逗号运算符)。它可以像

一样呈现
( A ), ( B = 0.0 ), ( 2 );

结果变量B将获得值0.0。变量A将保持不变。

来自C标准(6.5.17逗号操作员)

  

2逗号运算符的左操作数被计算为void   表达;它的评估与之间存在一个序列点   正确的操作数。然后评估右操作数;结果   有它的类型和价值

因此上述表达式的值为2,类型为int。不使用表达式的值。因此唯一的副作用是将值0.0分配给变量B