天天看點

淺談引用和指針的差別

引用和指針的差別

1、不存在空引用。引用必須連接配接到一塊合法的記憶體。

2、一旦引用被初始化為一個對象,就不能被指向到另一個對象。指針可 以在任何時候指向到另一個對象。

3、引用必須在建立時被初始化。指針可以在任何時間被初始化。

下面用代碼來說明一下
#include <stdio.h>
#include <tchar.h>
#include <iostream>
using namespace std;
int main ()
{
   // 聲明簡單的變量
   int i=;

   // 聲明引用變量
   int &r = i;

   // 聲明指針變量
   int *a = &i;

   //列印值
   printf("i = %d\n",i);
   printf("r = %d\n",r);
   printf("a = %d\n",*a);

   //列印位址
   printf("i的位址是:%p\n",i);
   printf("r的位址是:%p\n",r);
   printf("a的位址是:%p\n",a);
   printf("a裡面的内容的位址是:%p\n",*a);
   return ;
}
           
輸出結果
i = 
r = 
a = 
i的位址是:
r的位址是:
a的位址是:FBE4
a裡面的内容的位址是:
           
說明

從結果可以看出,通過引用和指針都可以獲得 i 的值。

但是,引用的位址與變量位址一樣,而指針與變量位址不同,指針裡存放的是變量的位址。

可以把引用看成是變量的别名,而指針有自己的位址,它隻是存儲着變量位址。

繼續閱讀