2 laowangmomoda laowangmomoda 于 2016.04.10 15:55 提问

C++小白关于C++ primer中指针交换的问题

C++primer第五版的6.22题,要求是交换两个int指针。
#include
void exchange(int *&x,int *&y);
void exchange(int *&x,int *&y)
{
int *z;
z=x;
x=y;
y=z;
}
int main()
{
using namespace std;
int *p;
int *t;
int i=10;
int j=20;
*p=i;
*t=j;
exchange(p,t);
cout<<*p<<*t<<endl;
return 0;
}
以上是代码,在Dev-c++中无法编译,显示的信息是编译器已停止工作。请哪位好心的大神指点一下我代码中有什么问题

2个回答

cxsmarkchan
cxsmarkchan   2016.04.10 16:05
*p=i;
*t=j;

改成:

p=&i;
t=&j;
qq423399099
qq423399099   Ds   Rxr 2016.04.10 17:39

楼上正解。
你的p和t指针一开始指向了一个未知区域,你试图把i和j的值写入一个未知区域自然出现了异常

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!