C++中, 前缀式自增(或自减)可以用来当做左值使用,但是后缀式自增(或自减)不能被当做左值使用。
例如,下面程序会打印"a = 20" (++a在这里就是做为一个左值)
#include<iostream>
int main()
{
int a = 10;
++a = 20; // 正常编译
std::cout << "a = " << a << std::endl;
return 0;
}
而下面的程序会编译失败。
#include<iostream>
int main() {
int a = 10;
a++ = 20; // 编译错误
std::cout << "a = " << a << std::endl;
return 0;
}
编译失败,visual studio 2015:
error C2106: “=”: 左操作数必须为左值