#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/