内部引用也是通过指针来实现的。因此,很难说指针/引用哪个更快。
这是这两者的用法,造成了差异。
例如,您想通过引用将参数传递给函数。
void func(int& a) case_1
{
//No need to check for NULL reference...
}
void func(int* a) case_2
{
//Need o check if pointer is not NULL
}
Run Code Online (Sandbox Code Playgroud)
在 case_2 中,您必须在取消引用指针之前显式检查指针是否不为 NULL,而引用则不然,因为引用被初始化为某些内容。
假设你正在以文明的方式玩游戏,即
你没有做类似的事情:-
int*p = NULL;
int &a = *p;
Run Code Online (Sandbox Code Playgroud)