c - 前增量和后增量

标签 c post-increment pre-increment

#include<stdio.h> 
int main()
{
    int a = 10;
    ++a = 20;      
    printf("a = %d", a);
    getchar();
    return 0;
}

上述代码获得的输出为:a=20;当作为 C++ 代码运行时。

#include<stdio.h> 
int main()
{
    int a = 10;
    a++ = 20;      
    printf("a = %d", a);
    getchar();
    return 0;
}

这会产生编译错误。这背后的原因是什么?

最佳答案

您正在使用 C++ 编译器编译您的程序。

在C++中,前自增运算符的结果是左值,而后自增运算符的结果不是左值。

在 C 中,预自增和后自增运算符都不是左值,因此您无法分配给自增运算符的结果。

如您所见,C 和 C++ 在这件事上有不同的规则,这并不奇怪,因为它们是不同的语言。

关于c - 前增量和后增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24971290/

相关文章:

c - 关于逻辑运算符的基本编程练习

c - 关于 C 中的指针和 strcpy()

c - 执行使用 lex 和 yacc 工具开发的 c 文件时出错

javascript - Javascript 中的预增量

c# - 为什么++运算符重载时++foo和foo++没有区别?

c++ - 在 C++ 中递增 - 何时使用 x++ 或++x?

c - 冒号在 C 函数中表示什么?

c - 在 while 循环中与乘法一起使用的后递增

java - 增量器逻辑

performance - 为什么 i=i+1 比 i++ 快?