您的位置:首页 > 其它

关于指针引用

2008-05-18 15:31 225 查看
如果修改指针的指向,而非指针所指向的内存空间的内容?

先看看下面这段代码

void f1(int* ip) {
ip = new int(10);
}

如果传入一个int* 指针,比如这样


int* p;


f1(p);

实际上执行的是一个pass-by-value(传值)操作,p的指向没有发生改变。

解决这个问题有2法:用指针的指针作为参数(a pointer to a pointer),或者一个指针引用作为参数(pointer references)。

void f2(int** ipp) {
*ipp = new int(10); //改变指针的指向
**ipp = 10; //改变了指针指向的空间的内容
}

void f3(int*& irp) {
irp = new int(10); //改变指针的指向
*irp = 10; //改变了指针指向的空间的内容
}

可见指针引用的用法要比指针的指针少一个*号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: