1.0 引用不可以為空,但是指標可以為空
1.1. 所以定義乙個引用的時候必須初始化
1.2. 所以使用指標之前必須判空,而引用不需要
2.引用不可以改變指向,而指標可以
引用**實驗展示:
#include using namespace std;
int main()
執行結果:
// 就是說其實引用就是給乙個變數起別名 引用的名稱就是那個變數 如下圖
// ret=j; 其實就相當於將20賦給了ret 也就相當於賦給了i
// 所以j還是原來的值20 而i和ret都變為了21
// 而指標則是大不相同
#include using namespace std;
int main()
執行結果:
指標**實驗展示:
#include using namespace std;
int main()
執行結果:
3. 引用的大小是所指向的變數的大小
因為引用只是乙個別名而已;
指標是指標本身的大小,32位系統中是4個位元組,64位系統中是8位元組
4.引用比指標更安全。
由於不存在空引用,並且引用一旦被初始化為指向乙個物件,它就不能被改變為另乙個物件的引用,因此引用很安全。
對於指標來說,它可以隨時指向別的物件,並且可以不被初始化,或為null,所以不安全。
const 指標雖然不能改變指向,但仍然存在空指標,並且有可能產生野指標(即多個指標指向一塊記憶體,free掉乙個指標之後,別的指標就成了野指標)
指標和引用,const 指標和const 引用
指標和引用是在使用中經常弄混淆的兩個概念。引用 reference 為物件起了另外乙個名字,用符號 表示。name,例如 int i 1024 int ref i 一般在初始化變數時,初始值會被拷貝到新建立的物件中,然而定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引...
指標和引用
一 先看一段 include using namespace std void freeptr1 int p1 void freeptr2 int p2 void main 思考 在 freeptr1 和freeptr2 的比較中,你能發現它們的不同點嗎?二 對 進行解釋 include using...
指標和引用
指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但...