C 引用 和 指標

2021-08-20 08:40:21 字數 1886 閱讀 4142

1. 指標是乙個實體,而引用僅是個別名;

2. 引用使用時無需解引用(*),指標需要解引用;

3. 引用只能在定義時被初始化一次,之後不可變;指標可變;

4. 引用沒有 const,指標有 const;

5. 引用不能為空,指標可以為空;

6. 「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身(所指向的變數或物件的位址)的大小;

7. 指標和引用的自增(++)運算意義不一樣;

8.從記憶體分配上看:程式為指標變數分配記憶體區域,而引用不需要分配記憶體區域。

int *p = 位址

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

usingnamespacestd;

//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 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的 如果在執行函式期間形參的值發生變化,並不傳回給實參 因為在呼叫函式時,形參和實...