近日同事离职,交接过程中熟悉源代码,在代码中看到了这样一行代码:“void*& ph = GetInfo().sHandle;”,对void*&这个类型顿时心生疑惑,查了查CSDN才知道,原来这是指针引用,可实现对指针自身的全局赋值操作。为此写了一个Demo,代码如下:
void TestPtrRef(int*& a)//以引用的形式传递指针参数,对指针(地址)重新赋值,实参指针发生变化
{
++a;
}
void TestPtr(int* a)//直接传递指针参数,对指针(地址)重新赋值,实参指针不发生变化
{
++a;
}
int main()
{
int TestVar = 10;
int* TestVarPtr = &TestVar;
TestPtr(TestVarPtr);
std::cout << "TestVar变量的地址为:" << TestVarPtr << endl;
TestPtrRef(TestVarPtr);
std::cout << "TestVar变量的地址为:" << TestVarPtr << endl;
return 0;
}