Tri*_*ity -2 c pre-increment post-increment
#include<stdio.h>
int main()
{
int a = 10;
++a = 20;
printf("a = %d", a);
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上述代码获得的输出是:a = 20; 当作为C++代码运行时.
#include<stdio.h>
int main()
{
int a = 10;
a++ = 20;
printf("a = %d", a);
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这给出了编译错误.这背后的原因是什么?
您正在使用C++编译器编译您的程序.
在C++中,预增量运算符的结果是左值,但后增量运算符的结果不是左值.
在C中,预增量和后增量运算符都不是左值,因此您无法分配增量运算符的结果.
正如你所看到的,C和C++在这个问题上有不同的规则,这并不奇怪,因为它们是不同的语言.