C 引用與臨時變數

2021-08-19 17:30:03 字數 1372 閱讀 6116

引用是c++的一種復合型別,是已定義的變數的別名,與原變數在同乙個記憶體位址。引用常常作為函式的形參,此時函式將使用原始資料(而不是原始資料的副本)。

使用引用時需要注意以下兩點:

①必須在宣告引用的時候就進行初始化,否則編譯會報錯。

②一旦成為某個變數的引用,則將一直效忠於它。下面通過乙個例子,來看看引用在函式傳參裡面的應用:

int _tmain(int argc, _tchar* argv)

///按值傳遞

///將使用實參的副本

int gettime1(int lines)

///按引用傳遞

int gettime2(int& lines)

執行結果如下圖:

結果表明:

①引用與原變數line的位址是一樣的,並且就是操作同乙個變數(藍色方框);

②按值傳遞是使用原變數副本,所以不會更改原變數的值,而是在函式裡新建乙個變數;

接著看乙個例子:

在上述**基礎上定義另乙個函式gettime3(const int& lines),形參前面加了const

///按引用傳遞

int gettime3(const

int& lines)

接下來看這一段**,體會臨時變數的作用:

///line+50不是變數,下面一行會出錯

gettime2(line+50);

/不是int型變數,下面一行會出錯

可以看到,在呼叫gettime2函式時,由於傳進的引數與函式形參的型別不匹配,編譯階段會報錯。但是如果呼叫gettime3函式呢?

僅僅會因為可能發生資料截斷而提出警告,而不會報錯。這就是因為使用const引用,使函式鞥能夠正確生成並使用臨時變數

C 常量引用與臨時變數

由 練習7.49 b 產生出來的小問題。總結 1.不要對臨時變數進行改變。要傳遞臨時變數,得用常量引用。2.當引用不需要更改時,用const引用。問題 struct sales data sales data combine sales data sales data sales data comb...

C const引用 臨時變數 引用引數

c 引用 臨時變數 引用引數和const引用 如果實參與引用引數不匹配,c 將生成臨時變數。如果引用引數是const,則編譯器在下面兩種情況下生成臨時變數 實參型別是正確的,但不是左值 實參型別不正確,但可以轉換為正確的型別 左值引數是可被引用的資料物件,例如,變數 陣列元素 結構成員 引用和被解除...

C const引用 臨時變數 引用引數

臨時變數 引用引數和const 如果實參與引用引數不匹配,c 將生成臨時變數。現在,僅當引數是const引用,c 才允許這樣做,這是乙個新的機制。在下面這兩種情況下,c 編譯器將生成臨時變數 實參型別是正確的,但不是左值 實參型別不正確,但可以轉換為正確的型別 左值引數是可被引用的資料物件,例如,變...