2 C 中的引用

2021-06-21 09:29:59 字數 1952 閱讀 7247

一. c++中的布林型別

c++中的布林型別只有true 和 false。 true代表真,編譯器用1表示。false代表假,編譯器用0表示。

#include int main(int argc, char** argv) 

二 .三目運算子的公升級

c語言中,三木運算子只能返回變數值,不能當左值使用。

在c++中三目運算子可以可以直接返回變數本身。

*若c++中三目運算子直接返回值中有乙個是常量,則不能當左值使用。

#include int main(int argc, char** argv) 

三. c++中的引用

變數就是一段連續儲存空間的別名。c++中的引用可以看做變數的別名。

普通引用在宣告是必須用其他變數進行初始化。

引用作為函式引數是不必進行初始化。

#include int main(int argc, char** argv) 

#include void swap( int& a,int& b)

void swap (int *pa,int *pb)

int main(int argc, char** argv)

2. 當使用常量對const引用進行初始化時,c++編譯器會為常量分配儲存空間,並將引用名作為這段空間的別名

使用常量對const引用進行初始化後將生成乙個唯讀變數。

#include int main(int argc, char** argv) 

3.引用有自己的儲存空間 

下面函式可以說明:引用有自己的儲存空間

#include struct  tr

;int main(int argc, char** argv)

執行結果為:8,

4. c++在引用內部實現的是乙個常指標

int & a ; <===> int* const a;

說明:(c++編譯器在編譯過程中使用常指標作為引用的內部實現。

一下兩個函式是一樣的

void f(int& a)

void f(int* const a)

五. 當函式返回值為引用

若返回棧變數

(1)不能成為其他引用的初始值

(2)不能作為左值使用

若返回的是靜態變數 或 全域性變數

(1)可以成為其他引用的初始值

(2)既可以當右值使用,又可以當左值使用

#include /*

若返回的是靜態變數 或 全域性變數

(1)可以成為其他引用的初始值

(2)既可以當右值使用,又可以當左值使用

*/int& f()

/* 若返回棧變數

(1)不能成為其他引用的初始值

(2)不能作為左值使用

編譯時出現警告,輸出b的值為-2,明顯不對。棧變數時,函式呼叫完成後,會釋放記憶體,如果在賦值給他的引用,這時這個引用會找不到這個變數。輸出乙個錯誤值.

六 .c++中引用 與 三木運輸符的關係

(1)當三目運算子可能返回的都是變數時,返回的是變數的引用。

(2)當三目運算子可能返回的值中有常量時,返回的是值。

int a = 1;

int b = 2;

(a

2 C 中的引用

int a 10 int b a int b 是錯誤的必須初始化 引用在初始化後,不可以改變 int c 20 b c 賦值操作,而不是更改引用。include using namespace std 交換函式 1.值傳遞 形參不會修飾實參 void swap1 int a,int b void s...

2 c 基礎 位址和引用

指標的定義 int a 10 指標定義的語法 資料型別 指標變數 int p 讓指標記錄變數a的位址 p a cout a endl cout 指標p為 p endl 使用指標 可以通過解引用的方式找到指標指向的記憶體 指標前加 代表解引用,找到指標指向的記憶體中的資料 p 1000 cout a ...

C 深度解析教程學習筆記(2)C 中的引用

1 變數名的回顧 變數是一段實際連續儲存空間的別名,程式中通過變數來申請並命名儲存空間 通過變數的名字可以使用儲存空間。變數的名字就是變數的值,變數名是取位址操作 2 c 中新增加了引用的概念 引用可以看作乙個己定義變數的別名 引用的語法 type name var type 為型別名,name 為...