c 指標和引用的區別

2021-08-11 10:47:12 字數 460 閱讀 3839

下面是乙個很常見的32位平台上的無型別指標 

int* p=100;

從記憶體的角度來看待指標 其實就是 一段記憶體  ,這個p本身就是乙個4位元組大小的記憶體 ,用來儲存乙個值為100的值,因為p是乙個指標型別,當程式執行的時候就會對p進行乙個位址解析,程式會認為100是乙個int型的記憶體位址,,通過執行環境找到這個100的位址,再根據指標型別取相應大小的值,也就是說 從p開始取值一直到取出int值,用了兩跳

首先根據p變數找到p對應的位址n,取指標值,然後在根據指標值100找到記憶體位址為100的地方,然後根據指標型別決定連續取出多少個位元組,然後在把取出的值返回。

引用而引用就不一樣了,只有一跳,從微觀的角度來講,引用要比指標訪問的速度快,因為少了一跳,你也可以認為引用就是一種指標,

那麼基本型別和物件型別的區別在哪 ?  其實任何型別都有位址和值   希望在寫在c/c++**的時候不要區別這兩種型別,這樣在概念上更加容易理解一點

C 引用和指標區別

一 引用簡介 引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引用,即別名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別符號是指目標變數的型別。3 ...

C 引用和指標的區別

很久沒寫過這類文章了,本來是想做下筆記,既然要做筆記,不如寫下部落格,就動起手來。文采不怎麼樣,還忘大家見諒 c 引用變數是c 中新增的一種復合型別,也就是說標準c語言中沒有引用變數。所謂引用,實際上就是乙個已定義變數的別名,別名我想大家小時候都有,應該可以理解,別名表示的是同乙個人,這裡引用變數和...

C 引用和指標的區別

c 引用和指標在間接使用其他物件的各種操作功能上面類似,但是兩者的不同之處也很明顯 1.指標本身佔據記憶體空間,但是引用只是乙個物件的別名,本身不分配記憶體空間 2.指標定義時可以不初始化,但是定義乙個引用必須進行初始化,並且初始化時只能是乙個物件 比如 int b 3.14 這樣是錯的,要明白 引...