總結3 引用

2021-10-07 14:56:14 字數 2515 閱讀 4180

int a =10;

int&b = a;

// b就是a的別名

b =200

;// 修改變數a中的內容

printf

("&a = %d \n &b = %d \n"

,&a,

&b);

// a 與 b 的位址是相同的

/* 在c中相當於以下效果 */

int*

const b =

&a;*b =

200;

1.1 普通引用 舉例
void

swap

(int

&a,int

&b)

1.2 引用所佔空間大小
/* qt64位環境測試 */

struct mytype

;/* 列印結果: */

void

printsize()

結論:實際引用所佔空間大小與指標型別所佔空間相同。32位系統佔4位元組, 64位系統佔8位元組

1.3 引用的本質
1.4 函式返回值是引用

函式返回值是區域性變數當引用

/* qt64位 環境測試 */

#include

intgetvaluea()

int&

getvalueb()

intmain

(int argc,

const

char

*ar**)

函式返回值是static變數當引用
/* qt64位環境測試 */

#include

intgetvaluea()

int&

getvalueb()

intmain

(int argc,

const

char

*ar**)

1.5 指標引用
#include

"iostream"

using

namespace std;

struct teacher

;// 1.c語言中的二級指標

intgetteacher1

(teacher *

*p)

teacher *tmp =

(teacher *

)malloc

(sizeof

(teacher));

if(tmp ==

null

)

tmp-

>age =33;

*p = tmp;

}// 2.c++中的指標引用

intgetteacher2

(teacher*

&pt)

pt->age =40;

}// 釋放記憶體

void

freeteacher

(teacher *pt1)

free

(pt1);}

intmain

(int argc,

const

char

*ar**)

結論:指標引用可以理解為c語言中的 二級指標

作用:讓引用 唯讀屬性, 不能通過引用修改變數

2.1 常引用基本形式
int a =10;

const

int&b = a;

b =20

;// 編譯器報錯... 修改不了記憶體中的值

2.2 常引用初始化
const

int a =10;

// c++編譯器將a放在符號表中

int&b =10;

const

int&c =10;

// 編譯通過:c++編譯器會分配記憶體空間

2.3 常引用做函式引數
int

printinfo

(const teacher &t)

// 擁有唯讀屬性,函式內不能修改內容

寫文不易 且行且珍惜

mrwang

函式探幽(3) 引用(3)

3.1.將引用用於結構 引用非常適合用於結構和類,而引入引用的目的也是為了用於這些型別。有如下結構定義 struct free throws 則可以這樣編寫函式原型 void set pc free throws ft 如果不希望函式修改傳入的機構,可使用const void display con...

MongoDB學習筆記(3)引用

嵌入式關係,db.users.findone 注意 以上查詢中 db 和 users 表示資料庫和集合。這種資料結構的缺點是,如果使用者和使用者位址在不斷增加,資料量不斷變大,會影響讀寫效能。引用式關係這種方法需要兩次查詢,第一次查詢使用者位址的物件id objectid 第二次通過查詢的id獲取使...

XSLT之路3 引用外部類

引用外部類 1.定義乙個類 2.定義乙個xslt 3.c 匯入urn mypolicy 4.指令碼呼叫外部類 1.定義乙個類 保單 public class policy 2.定義乙個xslt 申明乙個命名空間 xsl stylesheet version 1.0 xmlns xsl xmlns m...