常常有的时候想 我传的明明是指针 为什么感觉传了拷贝。 比如今天同学来问我一个题目:
#include <iostream> using namespace std; void swap(char* a,char* b){ char* temp; temp=a; a=b; b=temp; } int main(){ char* a="zhongguo"; char*b="guozhong"; swap(a,b); cout<<a<<endl; cout<<b<<endl; return 0; }
就是不能换,非常郁闷。最后突然意识到,传是指针,但是我想改变的也是指针,所以对于指针来说传的仍然是拷贝,所以应该要用引用!
#include <iostream> using namespace std; void swap(char& a,char& b){ char* temp; temp=&a; a=b; b=*temp; } int main(){ char* a="zhongguo"; char*b="guozhong"; swap(a,b); cout<<a<<endl; cout<<b<<endl; return 0; }
上面这代代码就对了。
指针拷贝的一些想法
最新推荐文章于 2023-03-19 21:09:06 发布