int a=5;
++a=a;
请找到上面的代码段。该代码适用于C++(g ++)编译器,但在使用c(gcc)编译器时显示错误。我可以知道这个的原因吗? c编译器中的错误是“作为赋值的左操作数需要左值”。C编译器错误,但不是C++编译器中的错误
int a=5;
++a=a;
请找到上面的代码段。该代码适用于C++(g ++)编译器,但在使用c(gcc)编译器时显示错误。我可以知道这个的原因吗? c编译器中的错误是“作为赋值的左操作数需要左值”。C编译器错误,但不是C++编译器中的错误
在C++中有运算符重载(也可以重载预增量),所以为了实现一些额外的目标,预增值运算符在C++中返回左值。
例如:
你的类可以实现一些指针功能,并且可以需要:
在此情况下,预增量可能会有用。
摘要代码例如:
class MyIntPtr {
int *val;
...
public:
MyIntPtr(int *p) { ... };
MyIntPtr &operator++() { ++val; return *this; };
void operator=(int i) { *val = i; }
...
};
...
int array[10];
MyIntPtr ptr(array);
for(int i = 0; i < sizeof array; ++i)
++ptr = i;
在C++中一个是指一个值不是一个变量不确定C++ – bikram990 2013-05-09 05:29:54
相关:http://stackoverflow.com/questions/3690141/multiple-preincrement -al-variable-in-cc – 2013-05-09 05:30:23