Al *_*l B -2 c variable-assignment
我之前已经声明了变量及其值,但之前我从未在一行中完成过.
如果我写
A, B = 0.0, 2;
Run Code Online (Sandbox Code Playgroud)
这是否意味着
A = 0
Run Code Online (Sandbox Code Playgroud)
和
B = 2?
Run Code Online (Sandbox Code Playgroud)
这个表达
A, B = 0.0, 2;
Run Code Online (Sandbox Code Playgroud)
是逗号运算符的表达式(这里是两个逗号运算符).它可以像
( A ), ( B = 0.0 ), ( 2 );
Run Code Online (Sandbox Code Playgroud)
结果变量B
将获得值0.0.变量A
将保持不变.
来自C标准(6.5.17逗号运算符)
2逗号运算符的左操作数被计算为void表达式; 它的评估与右操作数之间存在一个序列点.然后评估右操作数; 结果有它的类型和价值
所以上面的表达式的值是2
,类型是int
.不使用表达式的值.因此唯一的副作用是将值0.0
赋给变量B
.