int a=b=c=10; //invalid statement
Run Code Online (Sandbox Code Playgroud)
但以下是有效的陈述
int a,b,c;
a=b=c=10;
Run Code Online (Sandbox Code Playgroud)
第一个是无效的,因为b在b得到它的值之前被分配到一个偶数.
但是第二种情况是有效的,因为相等(=)符号具有右关联,即"="符号将开始从右侧获得偏好.
我的问题是:为什么在第一种情况下不适用右关联?这是否意味着Associativity不适用于声明声明?我需要更加明确这一点.
它不起作用,因为它在语法上不正确.正如您在第二个示例中所示,使用逗号作为分隔符声明了多个类型的变量.如果相反b并c已经宣布,那么事情就可以了.例如,这有效:
int b,c;
int a=b=c=10;
Run Code Online (Sandbox Code Playgroud)
你甚至可以这样做(至少使用VS2010编译器):
int b,c,a=b=c=10;
Run Code Online (Sandbox Code Playgroud)
请注意,我会说看起来很糟糕,并建议不要这样做.
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |