引用
引用乙個指標& 放在*的右邊
int &i=j 等價於 int *const i=j;void
change
(myclass *&p
)
引用int
a ;
int&b
=a;//引用定義時必須初始化
//此時b就已經建立了對a的引用
的本質上是為了方便程式設計師間接修改變數的程式編寫,不需要使用指標,編譯器在內部已經做了。
引用很像指標,在定義時,c++編譯器也是分配記憶體的,已乙個常量指標型別建立記憶體void
fun(
int&
b)
void
main
()
對比間接賦值的三個條件:
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的隱式型別...