c 從入門到精通,引用相關介紹

2022-09-20 08:00:16 字數 2012 閱讀 4478

很多剛入門c++的計算機小白,在面露難色學完指標後再接觸c++中的引用。就會有一種十分舒適的感覺。在c++中引用無論如何都是在某些方面替代指標的容易上手的工具。引用通俗一點就是別名,而指標是涉及計算機底層記憶體的位址。當然既然是工具我們就得深入了解引用。引用的實質還是指標常量,只不過更加「平易近人」

首先讓我們複習以下***指標常量***

指標常量特點:指標的指向不可以修改,但是指標指向的值可以修改,後面兩字可修改

#include

using

namespace std;

intmain()

這裡就不畫記憶體條詳細解釋了。>_<

根據指標常量的特點:

a =10;

b =20

;int

&c = a;

//這就是將引用c初始化。

//int &c 錯誤

c = b

/*!!!!這並不是更改引用,而是賦值操作。

即a及a的別名c均重新變成了20*/

結合指標常量這也是非常好理解的。(也許你並不想提這幾個字)@- _ @-。

引用作函式引數

可以實現指標傳遞的功能並代替指標。我們知道引用的實質,但在我們用的時候。我們只需要考慮這就是個別名

#include

using

namespace std;

//值傳遞。只可改變形式引數,不可改變實參。

void

hanshu_1

(int a,

int b)

//位址傳遞。可改變實參。

void

hanshu_2

(int

* a,

int* b)

//引用傳遞。也可改變實參,更加通俗易懂。

void

hanshu_3

(int

&a,int

&b)int

main()

不要返回區域性變數的引用。

#include

using

namespace std;

int&

hanshu()

intmain()

上面的函式有問題。具體可自己嘗試。

棧區的基部概念:

棧區資料由編譯器管理開闢與釋放:

注意!不要在函式中返回區域性變數的位址。因為區域性變數存放在棧區,資料在函式執行完後會自動釋放。

函式的呼叫可作為左值

#include

using

namespace std;

int&

hanshu()

intmain()

!!!以防萬一,將來如果出錯,在上萬行**中找bug很恐怖@-_@-

void

hanshu_1

(const

int& a)

因為引用本身需要乙個合法的記憶體空間。結合指標不可以對乙個沒有指向的指標所指向的量進行賦值。

int

&a =10;

//錯誤,因為引用本身需要乙個合法的記憶體空間。

但是下面的可行。更簡潔因為編譯器幫我們作了相應的處理使其合法。

即幫我們建立了乙個臨時變數來儲存10,再引用。

const

int&a =

10;

關於引用就總結這麼多了,謝謝大家閱讀。

推薦自學c++的課程,嗶哩嗶哩up黑馬程式設計師,個人感覺課程十分nice

點選這裡

c 從入門到精通 多型

多型按字面的意思就是多種形態。當類之間存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。c 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。下面的例項中,基類 shape 被派生為兩個類,如下所示 include using namespace std class sha...

Nginx從入門到精通

1 nginx配置檔案載入機制 採用nginx s reload命令載入nginx的配置檔案,master程序讀取配置檔案,建立新的worker程序,向老的worker程序傳送shutdown命令。老的worker程序不再接受新的請求,待老的請求處理完成後,就會停掉。2 location匹配機制 當...

scrot 從入門到精通

無論是撰寫技術教程,還是展示桌面或應用,恐怕 scrot 都是必不可少的工具。scrot 是螢幕抓圖工具中的 皎皎 佼佼者,它小巧而不失為強大,精練而不缺少靈活。scrot 主要用在命令列下,它使用 imlib2 庫來抓取並儲存影象。在 ubuntu 中,可以使用sudo apt get insta...