解引用运算符和自增运算符连用时的一个小坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cup160828/article/details/81043394
(1)#include <iostream>




using namespace std;




int main() {


int data[2]={0,10};
int *p=data;
*++p=1;
cout<<data[0]<<" "<<data[1]<<endl;
cout<<*p<<endl;
return 0;


}

输出结果:

0 1

1

(2)

#include <iostream>




using namespace std;




int main() {


int data[2]={0,10};
int *p=data;
*p++=1;
cout<<data[0]<<" "<<data[1]<<endl;
cout<<*p<<endl;
return 0;


}

输出结果:

1 10
10


解析: 后置++返回的是原对象的副本,并不会将其递增的结果返回

参考文献:

【1】C++ 递增运算符:前置++和后置++的区别 - CSDN博客 https://blog.csdn.net/misayaaaaa/article/details/62893822

【2】C++ 右结合律与左结合律详解 - CSDN博客 https://blog.csdn.net/misayaaaaa/article/details/62417326

猜你喜欢

转载自blog.csdn.net/cup160828/article/details/81043394