""" Sample python code representing multiple assignment """
a , b = 0 , 1
print a , b
以下代码给出输出: 0 1 显然不会引发任何错误。C 是否支持相同的内容?
不,C 不支持多重赋值,也不支持元组的语言级支持。
a, b = 0, 1;
考虑到运算符优先级,以上相当于:
a, (b = 0), 1;
相当于:
b = 0;
在大肠杆菌上观看直播。
与 Python 代码最接近的 C 等效项是:
a = 0, b = 1;
在这种情况下,使用赋值表达式的值没有用。
C 不像 Python 那样支持列表赋值。 您需要单独分配给每个变量:
a = 0; b = 1;
No C 不支持这样的多个赋值。
自a , b = 0 , 1
以来的编译传递被分组为a, (b = 0), 1
。a
和1
是无操作,但仍然是有效的表达式;表达式等效于
b = 0
a
不变。
有趣的是,您可以通过一些人为和语法上的微小更改C++实现所需的表示法。