【发布时间】:2014-05-01 18:57:30
【问题描述】:
忽略变量的类型,像a=b=c 这样的表达式是否在 C 和 C++ 中都定义了行为?
如果是这样,谁能给我官方证据,比如引用标准吗?
附:我搜索了链式分配,但我得到的一切都是关联性,但我在 C99 标准中没有找到任何关于它的文本。也许我做错了?希望任何人都可以帮助我。
【问题讨论】:
-
我们是否假设
a、b和c不是同一个变量?如果它们相同,则更多intereting。 -
我认为不需要在标准中明确提及,因为赋值只是一个返回赋值结果的表达式,所以
a=b=c等价于a=(b=c),这是本质上,与a=b+c没有什么不同。 -
a=b=c 没有任何关联性要做。它将被解释为 a=(b=c),也被解释为 b=c;a=(b==0)?1:0 。抱歉,我没有看到挖掘标准的任何理由,它在每本 c/c++ 书籍的开头。
标签: c++ c variable-assignment assignment-operator