C中的作业

use*_*451 -1 c assignment-operator

你能用C进行多次赋值操作吗?

int a = 0, b = 0, c = 0, d = 0;
(((a = b) = c) = d);
Run Code Online (Sandbox Code Playgroud)

我已经读过某个地方,C标准声明这个结果不会是左值?这是不确定的?

pmg*_*pmg 11

你可以做

a = b = c = d;
Run Code Online (Sandbox Code Playgroud)

这是一样的

a = (b = (c = d));
Run Code Online (Sandbox Code Playgroud)

如你所说,(子)表达式(a = b)不是左值,不能赋值.