C编程一元运算符优先级

C编程一元运算符优先级

This question already has an answer here:
Difference between a+++++b and a++ + ++b [duplicate]
                                
                                    (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