一. 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 為...