根据C语言官方的描述,会返回什么数字?
int a, b;
a = 5;
b = a+++++a;
return b;
最佳答案
解析为:
b = (a++)++ + a;
这是一个无效的表达式。增量运算符不能应用两次,因为 (a++)
不是左值。
标记生成器无法识别上下文,并且会匹配尽可能长的标记,因此它不会被解析为语法上有效的 a+++++a
。 (不过,这仍然是无效代码,因为它修改了 a
两次,而没有调用未定义行为的序列点。)
关于c - C将如何解析这句话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7431489/