深入探索C 引用的實現原理

2021-08-17 22:09:40 字數 1125 閱讀 3837

1.引用的概念及用法

引用不是定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名

定義的格式為:

型別 &引用變數名 = 已定義過的變數名;

int a = 1;

int &b = a;

引用的特點

1. 乙個變數可取多個別名

2. 引用必須初始化

3. 引用只能在初始化的時候引用一次,不能改變為再引用其他的變數。

可見, a 和 b 的位址一樣,即 b 只是 a 的乙個別名,並且可以通過修改 c (b的乙個引用)來修改 b 的值;

2.引用做引數

(1).【值傳遞】如果形參為非引用的傳值方式,則生成區域性臨時變數接收實參的值

void swap (int left, int right) // 這裡能實現交換嗎?

(2).【引用傳遞】如果形參為引用型別,則形參是實參的別名。

void swap (int& left, int& right)

**//當不需要改變引數值時,盡量使用常引用傳參**

(3).【指標傳遞】

void swap (int* pleft, int* pright)

- 3.引用做返回值*傳值做返回值&傳引用作為返回值*

int& add (int d1, int d2)

// int add ( int d1 , int d2)

void test()

void test()

深入探索Nginx工作原理

nginx 是乙個輕量級的http 服務程式,相比其他伺服器程式如apache,nginx占用記憶體少,穩定性高,併發處理能力強。同時nginx 還是乙個反向 服務程式,和郵件 服務程式。nginx具有豐富的模組庫 靈活的配置 較低資源消耗等優點。下面,我們一起深入看一下nginx的工作機制。我們從...

std move的原理與實現,右值引用的深入理解

這次我真的懂了。首先c 11引入了右值引用 這個要連起來看,是乙個整體,c 多了乙個關鍵字而已。不是引用的引用。是船新的一種語法。那有什麼用呢?額,引數的型別又多了一種!void fun int t void fun int t void fun int t void fun int t 之前的引數...

深入探索C 物件模型

深入探索c 物件模型 本書目錄結構如下 第1章 關於物件 object lessons 加上封裝後的布局成本 layout costs for adding encapsulation 1.1 c 模式模式 the c object model 簡單物件模型 a object model 驅動物件模...