为什么a ++ = 5是错误的?

Dvi*_*aim -3 c operator-precedence

我刚刚在c中编写了一个代码

#include <stdio.h>

int main()
{
    int a=0;
    option1: a++=5;
    option2: ++a=5;
    printf("%d\n",a);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但它没有编译错误

lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)

为什么会出错?谢谢!

nou*_*ney 5

因为,就像你的编译器说的那样,a++它不是一个lvalue,它就是一个rvalue.你会发现更多的信息lvalue,并rvalue 在这里.