问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
int d = 10; // 测试自增、自减
c = d++;
cout << "Line 6 - c 的值是 " << c << endl ;
这是在runnob上学c++时看到的
Line 6 - c 的值是 10
按理说从右往左的++优先级在第五,而赋值在第十四,不应该先自减再复制吗?
int d = 10; // 测试自增、自减
c = d++;
cout << "Line 6 - c 的值是 " << c << endl ;
这是在runnob上学c++时看到的
Line 6 - c 的值是 10
按理说从右往左的++优先级在第五,而赋值在第十四,不应该先自减再复制吗?
没错,的确是先调用++。但是后置++的大致代码如下:
int operator++(int)
{
int temp=*this;
*this+=1;
return temp;
}
所以说,即使先调用++,返回的也是加一之前的值。这是语法规定,如果使用前置++就不会这样。