之前我已经声明了变量及其值,但之前我从未在一行中完成过。
如果我写
A, B = 0.0, 2;
这是否意味着
A = 0
和
B = 2?
答案 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
。