C++中定义指针的引用有什么好处呢?
首先指针引用的定义方式(以char类型为例): char* &ptr = xxx
我们知道在C语言中如果想改变实参指针所指向的位置,就要定义重指针,如下面的例子
// 错误 实参指针不能被赋值
void changePtr( char* ptr )
{
ptr = (char*)malloc(100*sizeof(char));
}
如果要想改变实参指针所指向的地址,则需要定义重指针
// 正确
void changePtr( char** dbl_ptr )
{
*dbl_ptr = (char*)malloc(100*sizeof(char));
}
如果使用指针的引用
void changePtr( char*& ref_ptr )
{
ref_ptr = (char*)malloc(100*sizeof(char));
}
就可以直接使用引用来修改实参指针所指向的位置,也就相当于用指针本身修改指针所指向的位置。
(当然前提不是指针常量)