1. 指標是乙個實體,而引用僅是個別名;int *p = 位址2. 引用使用時無需解引用(*),指標需要解引用;
3. 引用只能在定義時被初始化一次,之後不可變;指標可變;
4. 引用沒有 const,指標有 const;
5. 引用不能為空,指標可以為空;
6. 「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身(所指向的變數或物件的位址)的大小;
7. 指標和引用的自增(++)運算意義不一樣;
8.從記憶體分配上看:程式為指標變數分配記憶體區域,而引用不需要分配記憶體區域。
p=位址
*p = 值
int &a = 值
a = 值
&x = 求x位址
一、變數的引用:
引用:就是某一變數(目標)的乙個別名,對引用的操作與對變數直接操作完全一樣。
引用的宣告方法:型別識別符號 &引用名=目標變數名;
例:char ch;
char &rp=ch;
1)引用僅是變數的別名,而不是實實在在地定義了乙個變數,因此引用本身並不占用記憶體,而是和目標變數共同指向目標變數的記憶體位址.
2)表示式中的取位址符&不再是取變數的位址,而是用來表示該變數是引用型別的變數。
3)定義乙個引用時,必須對其初始化。
示例**:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include
#include
using
namespace
std;
//c++中的引用例項
從圖中可以看出1.引用和目標變數的位址是一樣的,對引用的修改就是對目標變數的修改。
2. 而後邊用指標作為函式引數,把位址傳過去,指標變數的位址是2686608,而它的值是2686696(在指標的位址上存的值),2686696這個位址指向的值是3,也就是num的值。
3.指標變數是有自己的值的(2686608),和num的位址(2686696)不一樣,而引用的位址是和變數的值一樣的。
C 指標和引用
在深入介紹之前我們首先來看一下指標和引用的定義 指標和引用的區別,然後分別針對指標和引用展開討論,深入細節為何有這些差異。指標和引用的定義,下面用通俗易懂的話來概述一下 而宣告指標是可以不指向任何物件,也正是因為這個原因,使用指標之前必須做判空操作,而引用就不必。其次,引用不可以改變指向,對乙個物件...
C 引用和指標
引用和指標看上去差不多,看上去差不多,其實男寶寶和女寶寶是不一樣的 用起來還是有一定差距。本人菜鳥僅將遇到的問題記錄備案,以便日後翻查 ptrfunc.h ifndef ptrfunc h define ptrfunc h typedef int func int,int struct aa end...
C 指標和引用
有了變數名,為什麼還需要乙個別名呢?c 之所以增加引用型別,主要是把它作為函式引數,以擴充函式傳遞資料的功能 到目前為止我們介紹過函式引數傳遞的兩種情況 1 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的 如果在執行函式期間形參的值發生變化,並不傳回給實參 因為在呼叫函式時,形參和實...