据我所知,引用只是变量的另一个名称,而指针是它们自己的变量.指针占用空间.人们经常说“使用引用或指针”,但他们并没有说哪个更好.如果引用不占用自己的记忆,则引用在该部门中获胜.我不知道的是编译器是否区分了引用和普通变量.如果对引用执行操作,它是否编译为与普通变量相同的代码?
解决方法
内部引用也是根据指针实现的.因此,很难说哪个是更快的指针/引用.
这两种用法有所不同.
例如,您希望通过引用将参数传递给函数.
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 }
在case_2中,你必须在解除它之前显式检查指针是否为NULL,而引用则不是这种情况,因为引用被初始化为某种东西.
假设你是以文明的方式玩游戏,即
你没有这样做: –
int*p = NULL; int &a = *p;