【发布时间】:2017-12-10 10:48:45
【问题描述】:
#include<iostream>
using namespace std;
int main()
{
int x=7;
int *p=&x;
int *p1=&++x;
int *p2=&x++;
int *p3=&(++x);
int *p4=&(x++);
cout<<p<<endl<<p1<<endl<<p2<<endl<<p3<<endl<<p4<<endl<<*p<<endl<<*p++<<endl<<*++p<<endl<<*(p++)<<endl<<*(++p)<<endl;
return 0;
}
p2 和 p4 返回错误。另外,您能否解释一下我在 cout 语句中打印的指针 p 的所有增量的取消引用?
【问题讨论】:
-
在询问有关错误的问题时,也请分享错误
-
提示:考虑哪些增量运算符返回原始 x,哪些会返回一个副本。
-
而奇怪的输出就是因为这个Behavior of post increment in cout