指標和引用

2021-10-02 23:39:23 字數 1194 閱讀 2487

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...

指標和引用

指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但...