This question already has an answer here:
Difference between a+++++b and a++ + ++b [duplicate]
(1个答案)
4年前关闭。
有人可以让我知道为什么它会引发编译错误吗?
并解析为
这试图增加
即使允许,也会产生不确定的行为:您将无顺序地修改和使用
(1个答案)
4年前关闭。
#include <stdio.h>
int main()
{
int c=10,b;
b=++c+++c;
printf("%d",b);
return 0;
}
有人可以让我知道为什么它会引发编译错误吗?
最佳答案
乱码被标记为
++ c ++ + c
并解析为
((++c)++) + c
这试图增加
++c
产生的右值,这是不允许的。您只能递增左值(或C ++中的类类型)。即使允许,也会产生不确定的行为:您将无顺序地修改和使用
c
的值。关于c++ - C编程一元运算符优先级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29632681/
10-11 04:20