gpt4 book ai didi

c - 为什么正确的结合性不适用于声明语句

转载 作者:太空狗 更新时间:2023-10-29 17:18:46 25 4
gpt4 key购买 nike

int a=b=c=10;  //invalid statement

但以下是有效的陈述

int a,b,c;
a=b=c=10;

第一个无效,因为 b 甚至在 b 获得其值之前就已分配给 a。

但第二种情况是有效的,因为等号 (=) 具有正确的结合性,即“=”符号将从右侧开始获得优先权。

我的问题是:为什么右联想性不适用于第一种情况?这是否意味着关联性不适用于声明语句?我需要对此有更多的了解。

最佳答案

它不起作用,因为它在语法上不正确。正如您在第二个示例中所示,使用逗号作为分隔符声明了一个以上类型的变量。相反,如果 bc 已经声明,那么一切正常。例如,这有效:

int b,c;
int a=b=c=10;

您甚至可以这样做(至少使用 VS2010 编译器):

int b,c,a=b=c=10;

请注意,我会说这看起来不好,建议不要这样做。

关于c - 为什么正确的结合性不适用于声明语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3542503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com