引用 普通引用

2021-07-16 08:25:35 字數 1525 閱讀 1039

引用

引用乙個指標& 放在*的右邊 

void

change

(myclass *&p

)

int &i=j  等價於  int *const i=j;

int

a ;int&b

=a;//引用定義時必須初始化

//此時b就已經建立了對a的引用

引用

的本質上是為了方便程式設計師間接修改變數的程式編寫,不需要使用指標,編譯器在內部已經做了。

void

fun(

int&

b)

void

main

()

引用很像指標,在定義時,c++編譯器也是分配記憶體的,已乙個常量指標型別建立記憶體

對比間接賦值的三個條件:

1、定義兩個變數,乙個實參乙個形參

2、建立關聯,將實參的位址傳給形參p

3、*p形參去間接的修改實參的值

引用在實現上,只不過是把間接賦值成立的三個條件的後兩個放到了一起

當實參傳給形參的時候,只不過是c++編譯器幫我們程式設計師手工取了乙個實參位址傳給形參引用。

c++引用使用難點:

當函式返回值為引用時

若返回棧變數,不能成為其他引用的初始值,不能做左值使用;可以成為其他變數的賦值,不是引用型別的。

若返回靜態變數或全域性變數,可以成為其他引用的初始值,既可以作為右值,也可以作為左值使用。

//當返回的是全域性變數時,函式外部拿int或者int&都行。//若返回的是區域性變數,則只能用int型別去接

inta=

100;

int

&fun01

(int&a

)

void

main

()

返回棧變數

# define _crt_secure_no_warnings

#include

"iostream"

using

namespace

std;

int

&get

()

void

main

()

const引用和普通引用

一 引用所繫結的型別和所引用的物件型別需嚴格匹配。除了兩個例外 1 普通引用必須繫結到物件,不能繫結到常量 int a 3 錯誤 2 const引用 1 初始化const引用允許用任意表示式,只要該表示式的結果能轉化為引用型別即可 2 允許乙個const引用繫結非常量物件,字面值,甚至是一般表示式 ...

普通方法引用

public class main thread thread newthread runnable thread.start 需要使用函式式介面的物件的地方可以使用lambda表示式 public static void main string args 2.thread thread newth...

普通引用和const引用的初始化

普通引用和const引用的初始化 當引用的初始式是乙個左值 是乙個物件,你可以取得他的位址 時,其初始化就是非常簡單的事情。普通t 的初始式必須是乙個t型別的。而cosnt t 則不必是乙個左值,甚至可以不是t型別的。在這樣的情況下,經過以下幾個步驟。1 首先,如果需要的話,將應用到型別t的隱式型別...