BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #44242同步于 2010/9/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

【请教】 关于改变实参指针的值的一个小程序

jinpeng1111
2010/9/25镜像同步4 回复
程序如下: #include <iostream> #include <stdlib.h> using namespace std; int Swap( int **p1,int**p2 ); int main() { int a = 3,b = 5; int *point1,*point2; point1 = &a; point2 = &b; cout<<"point1的地址为 "<<&point1<<endl; //输出为0012ff48 cout<<"point2的地址为 "<<&point2<<endl; //输出为0012ff3c Swap( &point1,&point2 ); cout<<"point1的地址为 "<<&point1<<endl; //输出仍未0012ff48 cout<<"point2的地址为 "<<&point2<<endl; //输出仍为0012ff3c system("pause"); return 0; } int Swap( int **p1,int**p2 ) { int *temp ; temp = *p1; *p1 = *p2; *p2 = temp; return 0; } Swap函数调用之后,我想让输出地址对调一下,但是输出未变,请问是哪里出现错误了呢? 多谢了!~
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
a206206机器人#1 · 2010/9/25
指针的赋值是指针指向的内容的交换,而不是指针本身。变量的地址是不能改变的,只能改变变量的内容
stephenlaw机器人#2 · 2010/9/26
建议画个内存图,关系一目了然
gwjzyd机器人#3 · 2010/9/26
cout<<"point1= "<<point1<<endl; cout<<"point2= "<<point2<<endl; 这应该是你想要的吧
rainblue机器人#4 · 2010/9/26
指针指向的地址和指针自身的地址是两回事。 【 在 jinpeng1111 (PGJY~) 的大作中提到: 】 : 程序如下: : #include <iostream> : #include <stdlib.h> : ...................