""" Sample python code representing multiple assignment """
a , b = 0 , 1
print a , b
以下代码给出输出:0 1,显然不会引发任何错误。 C支持相同吗?
C不像Python那样支持列表分配。您需要分别为每个变量分配:
a = 0; b = 1;
不,C不支持多重赋值,也没有语言级别的元组支持。
a, b = 0, 1;
以上是考虑到operator precedence,相当于:
a, (b = 0), 1;
这相当于:
b = 0;
与Python代码最接近的C等价物是:
a = 0, b = 1;
在这种情况下,使用赋值表达式的值是没有用的。
No C不支持这样的多个赋值。
自a , b = 0 , 1
被归类为a, (b = 0), 1
以来的编译过程。 a
和1
是无操作但仍然有效的表达;表达式相当于
b = 0
与a
没有改变。
有趣的是,您可以通过一些设计和语法的微小变化在C ++中实现所需的符号。