C 引用(左值引用,右值引用)

2021-07-25 14:30:54 字數 855 閱讀 1633

特點:

引用:引用本質指標實現。

引用一旦初始化, 不會引用其他變數。

右值引用目的:快速建立暫存器資料的引用,就是還沒有記憶體實體的資料可以立即建立乙個引用。

(一般寫模板函式有乙個左值引用的模板函式,都會對應乙個右值引用的模板函式,即使實現**是相同的。)

左值:有記憶體實體

右值:暫存器的值

move()把左值當做右值。

事例:引用作為引數:更改引數的內容

namespace main3n

}void main3()

引用的注意事項:
//引用的返回值

//不可返回棧上的引用

namespace main5

}void main5n()

左值引用

簡單用法

int a(4);

int *p(new int(5));

int &ra(a);

int *(&rp)(p);

int &&rra(move(a));

int *(&&rrp)(move(p));

證明引用是乙個指標的**

double  db;

doublie &rdb(db);

sizeof(rdb);//8編譯器的憂化,變數名的別名

struct mystring

sizeof(mystring) //4

c 左值 右值 右值引用 左值引用

c 裡一切值必須屬於左值 右值兩者之一。左值 一切變數 包括用const修飾的變數 物件 包括引用都屬於左值 右值 一切字面值 可以是巨集 臨時無名物件 函式返回值 表示式 如a n 說明一下 函式返回值,返回的是某乙個型別的值,並不是返回變數。左值並不是說能放在 左邊的值就是左值 雖然用const...

c 左值 右值 左值引用 右值引用

在c語言中,左值認為是賦值語句的左側,右值認為是賦值語句的右側。在c 中,意義稍有不同。c 中,每乙個表示式會產生乙個左值或者右值,相應的,該表示式也就被稱作 左值表示式 右值表示式 乙個左值表示式的求值結果是乙個物件或者是乙個函式。左值可以當右值使用,而右值不能當左值使用。c prime 中這麼簡...

C 左值 右值 左值引用 右值引用

就變數而言,對於一些變數,我們只會讀取並使用它們的值,而不會改變他們的值 唯讀 對於其餘的變數,我們既會讀取它們的值,有的時候還會改變它們的值 讀寫 這是很常見的。在c 中,前一種變數稱為右值,後一種變數稱為左值,例如 int a 1 a是左值,1是右值稍稍不同的一點是,在c 中,乙個變數是左值還是...