关于指针引用
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; //改变了指针指向的空间的内容
}
可见指针引用的用法要比指针的指针少一个*号
先看看下面这段代码
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; //改变了指针指向的空间的内容
}
可见指针引用的用法要比指针的指针少一个*号
相关文章推荐
- 关于返回局部变量的指针或引用
- 关于c++ 智能指针及 循环引用的问题
- 关于二叉树指针和引用的体会(转载)
- 关于指针的引用问题
- 关于指针的引用
- 关于C中指针的引用,解引用与脱去解引用
- 关于二叉树指针和引用的体会
- 【C/C++】关于引用和指针的问题
- 关于常量指针的引用
- 关于主函数调用子函数涉及的指针和解引用的出现的问题
- C/C++中关于地址、指针和引用变量的学习笔记(四) : 函数
- C/C++中关于地址、指针和引用变量的学习笔记(五) : 指针
- C/C++中关于地址、指针和引用变量的学习笔记(七) : sizeof和typedef
- 再开一篇关于C++程序设计基核心之一:引用,指针,符号优先级,函数参数传递
- 关于函数返回值为引用和指针的问题
- 关于引用与指针,引用的实现
- 关于指针的引用*&
- C C++中关于值传递和引用传递,指针传递之间的区别
- 关于C中指针的引用,解引用与脱去解引用
- 关于指针和引用的思考