c++ char* char*&的区别

来源:互联网 发布:中信公积金网络贷款 编辑:程序博客网 时间:2024/05/16 07:55

两者都是把地址传到函数中。都可以对传入的指针指向的值进行修改

一旦传入的指针修改后,char*不会影响到函数外的指针指向的值,char*&会影响到函数外指针指向的值,因为此指针已经不是传入的指针了


#include<iostream>using namespace std;struct point{int x;int y;};void changenum1(point *&pnum){pnum = new point;pnum->x = 4;}void changenum2(point *pnum){pnum = new point;pnum->x = 4;}void test1(){point *num=new point;num->x=10;changenum1(num);std::cout<<num->x<<endl;}void test2(){point *num=new point;num->x=10;changenum2(num);std::cout<<num->x<<endl;}void main(){  test1();  test2();}



如果不修改指针的地址,那么这两个应该是有同等的效果。调用方法时对char*&直接传入指针即可。

0 0
原创粉丝点击