先摆出两段代码:(仅后缀不同) ------------------------------------------- 1.test.c
#include <stdio.h> void main() { int a=3; (++a) += 1; printf("a=%d\n",a );
} ------------------------------------------- 2.test.cpp
#include <stdio.h> void main() { int a=3; (++a) += 1; printf("a=%d\n",a );
} -------------------------------------------
上面两段代码内容是一样的,仅仅是后缀不同,都在VC6.0下编译调试,编译之后出现的不同的结果: 1.test.c:编译之后出现错误提示:“e:\vc\test\test.c(8) : error C2106: '+=' : left
operand must be l-value” 2.test.cpp:编译无错误。
请问各位大虾,是不是在C++中重新对 ++ 运算符进行了重载导致了上述的差异?或者是其他什么原因? |