引用和指標的巨集觀比對 引用和指標(一)

2021-10-04 02:23:42 字數 833 閱讀 8151

目錄

一般性變數引用的關鍵規則

引數引用的常見錯誤

引用和指標的區別是什麼?

引用為什麼比指標安全?

對於常量型別的變數,其引用必須是常量型別的,對於非常量型別的變數,其引用可以是常量型別的,也可以是非常量型別的。但無論什麼情況,都不能使用常量引用去修改引用的變數的值。

#include #include int main()

執行如下: 

初始化的要求不同:引用在建立的時候必須被初始化,即引用到乙個有效的物件;而指標在定義的時候不必初始化,在之後的任何地方都可以重新賦值,但是,在使用這個指標前,必須初始化完成。 

可修改性不同:引用一旦被初始化指定乙個物件後,就不能更改為另乙個變數的引用了,而指標可以,更改指向的變數。

不存在null引用:存在null的指標,但不存在引用為null值的引用。所以,引用必須依靠具體的變數,物件而活,而指標可以不依靠它們任何而存在。

應用的區別:一旦指向乙個物件後就不打算更改指向了,那就該用引用;如果存在指向null,想在不同時刻更改不同的指向物件,就需要用到指標。

總結:語言層面上,引用的用法和物件一樣;二進位制層面上,引用也是通過指標來實現的,只不過編譯器幫我們完成了轉換。總體來說,引用既具有指標的效率,也有變數使用的方便性和直觀性。

引用不存在為空,一旦引用必定繫結乙個具體物件,且不可更改。

指標就顯的不太"專一",不僅可以跟更改所指向的物件,甚至可以為空,相對來說更不安全。

指標引用和引用指標的區別

c 在傳參的過程中,指標 和指標引用 是有區別的。雖然,我們往往可以通過傳指標然後通過間址訪問來修改指標所指向物件的值,同樣,通過引用也可以直接修改物件的值。但是,當傳指標的時候有乙個問題,就是,我們雖然可以通過指標來修改指標所指向物件的值,但是我們沒有不能直接修改指標的內容 也就是指標變數存放的位...

指標和引用,const 指標和const 引用

指標和引用是在使用中經常弄混淆的兩個概念。引用 reference 為物件起了另外乙個名字,用符號 表示。name,例如 int i 1024 int ref i 一般在初始化變數時,初始值會被拷貝到新建立的物件中,然而定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引...

指標,和指標的引用

先貼出 void testreference fun1 person p void testreference fun2 person p void testreference fun3 person p 函式fun1傳入乙個指標,在函式內對p進行賦值,fun2傳入乙個指標,修改iage,函式fun...