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

标签 c operator-precedence

我刚刚用c写了一段代码

#include <stdio.h>

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

    return 0;
}

但编译时没有错误

lvalue required as left operand of assignment

为什么会出错? 谢谢!

最佳答案

因为,正如编译器所说,a++ 不是左值,它是右值。 您将找到有关左值右值 here的更多信息.

关于c - 为什么 a++=5 是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28561756/

相关文章:

双重自由或腐败的代码

c# - C# 中的运算符优先级

c - 为什么代码返回 23

c - 为什么 fscanf 使用 2 次 : while( ! feof(File))

c - 这个程序有任何序列点问题吗?

c++ - 参数顺序评估

c++11 - C++11 何时给出有关运算符优先级的警告?

带逻辑运算符的子表达式的 C++ 求值顺序

c - 通过 UDP 套接字发送十六进制值

C 字符数组打印为字符串错误并接受空终止?