是否有改变函数中指针的差异或首选方法?以此片段为例
void change(int** ptr) {
**ptr = 50;
*ptr = nullptr;
}
void change(int*& ptr) {
*ptr = 50;
ptr = nullptr;
}
int main()
{
int a = 5;
int* ptr = &a;
int** ptr2 = &ptr;
std::cout << "value: " << a << std::endl;
std::cout << "value: " << ptr << std::endl;
std::cout << "value: " << ptr2 << std::endl;
change(ptr2);
//change(ptr);
std::cout << "value: " << a << std::endl;
std::cout << "value: " << ptr << std::endl;
std::cout << "value: " << ptr2 << std::endl;
system("pause");
}
Run Code Online (Sandbox Code Playgroud)
似乎两个更改函数都可以实现我所要求的,但我不确定区别,除了引用函数不创建指针的副本?
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |