Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
""" 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 不支持这样的多重赋值。
编译通过,因为a , b = 0 , 1被分组为a, (b = 0), 1. a并且1是无操作但仍然有效的表达式;表达式等价于
a , b = 0 , 1
a, (b = 0), 1
a
1
b = 0
没有a改变。
有趣的是,您可以在 C++ 中通过一些设计和对语法的微小更改来实现您想要的符号。
C 不像 Python 那样支持列表赋值。您需要分别分配给每个变量:
a = 0; b = 1;