在一个帖子看到有人问到 *n++ 与 *n+=1 的区别 有个人说的不错
*n++ 是先取n指向的值,然后n++
*n = *n + 1; 是把n指向的值加1赋给*n。等价于:(*n)++
我自己也写了段代码来验证他的说法 也确实是如此 下面是我的测试代码
#include<iostream>
using namespace std;
int main()
{
int n=6;
cout<<"n=6"<<endl;
int *p=&n;
cout<<"p= "<<p<<endl;
*p=*p+1;
cout<<"*p=*p+1"<<endl;
cout<<"p= "<<p<<endl;
cout<<"*p= "<<*p<<endl;
cout<<"*p++ "<<*p++<<endl;
cout<<"p "<<p<<endl;
cout<<"*p "<<*p<<endl;
*p=*p+1;
cout<<"*p=*p+1 p "<<p<<endl;
cout<<"*p "<<*p<<endl;
return 0;
}
输出结果:
n=6
p= 0012FF7C
*p=*p+1
p= 0012FF7C
*p= 7
*p++ 7
p 0012FF80
*p 1245120
*p=*p+1 p 0012FF80
*p 1245121
Press any key to continue