1,c++ 中的布林型別:
1,c++ 在 c 語言的基礎型別系統之上增加了 bool;
1,c 語言中,沒有 bool 型別存在,往往都是用整型代替 bool 型別,常用 0 表示假,用 1 表示真;
2,bool 本來就有這樣的型別,但是在 c 語言中卻沒有這樣的對應基本型別,所以只有使用整型代替 bool 型別,但是不嚴謹;
3,這也是 c++ 中的 「+」 的體現;
2,c++ 中的 bool 可能的值只有 true 和 false;
1,true 代表真值,編譯器內部用 1 來表示(但是會將非 0 值也轉換為 true 而變為 1 儲存);
2,false 代表非真值,編譯器內部用 0 來表示;
3,理論上 bool 只占用乙個位元組;
2,bool 型別只有 true(非 0)和 false(0)兩個值;
c++ 編譯器會將非 0 值轉換為 true,0 值轉換為 false;
複製**
1 bool b = 0; // 相容 c,合法;
23 printf(「b = %d\n」, b); // b = 0;
45 b++; // 為了支援 c 語言,bool 型別支援數**算;
67 printf(「b = %d\n」, b); // b = 1;
89 b = b - 3;
1011 printf(「b = %d\n」, b); // b = 1;
複製**
3,布林型別的使用變成實驗:
1,main.cpp 檔案:
複製**
1 #include
23 int main(int argc, char *ar**)
4 複製**
4,布林型別是 c++ 中的基本資料型別:
1,可以定義 bool 型別的全域性變數;
2,可以定義 bool 型別的常量;
3,可以定義 bool 型別的指標;
4,可以定義 bool 型別的陣列;
5,...;
5,c++ 中的三目運算子(運算子當中被明顯公升級的):
1,c++ 對三目運算子進行了公升級:
複製**
1 int a = 1;
2 int b = 2;
34 (a < b ? a : b) = 3; // c 中三目運算子不能當做左值使用;error: lvalue(左值) required as left operand of assignment
56 // (a < b ? a : 2) = 3; // c++ 中報錯; error: lvalue(左值) required as left operand of assignment
78 printf(「a = %d, b = %d\n」, a, b); // c++ 中,a = 3,b = 2;
複製**
2,c 語言中的三目運算子返回的是變數值;
1,不能作為左值使用;
3,c++ 中的三目運算子可直接返回變數本身;
1,既可作為右值使用,又可作為左值使用;
4,三目運算子可能返回的值中如果有乙個是常量值,則不能作為左值使用;
6,c++ 對三目運算子做了怎樣的公升級?這種公升級的意義是什麼?
1,三目運算子如果可能的返回全部為變數,則它返回的是變數本身;
2,意味著引用;
7,c++ 中的引用:
1,變數名回顧:
1,變數是一段實際連續儲存空間的別名;
2,程式中通過變數來申請並命名儲存空間;
3,通過變數的名字可以使用儲存空間;
2,一段連續的儲存空間只能有乙個別名嗎?
1,不一定,例如人的名字可以有多個;
3,在 c++ 中新增加了引用的概念:
1,**如下:
1 int a = 4;
2 int& b = a; // b 為 a 的別名;
34 b = 5; // 操作 b 就是操作 a;
2,引用可以看做乙個已定義變數的別名;
1,可以引用無數個別名;
3,引用的語法:type& name = var;
1,「&」標明識別符號 name 是引用,是變數 var 別名;
2,name 的型別必須和 var 相同;
4,普通引用在定義時必須用同型別的變數進行初始化;
1,引用是別名,要給編譯器說明;
2,強型別;
8,引用初體驗例項分析:
1,main.cpp 檔案:
複製**
1 #include
23 int main(int argc, char *ar**)
4 複製**
9,c++ 對三目運算子做了什麼?
1,**如下:
1 int a = 1;
2 int b = 2;
34 (a < b ? a : b) = 3; // 正確,返回 a 或 b 的引用,可作為左值;
5 (a < b ? 1 : b) = 4; // 錯誤,返回 1 或 b 的值,不能作為左值;
2,當三目運算子的可能返回值都是變數時,返回的是變數引用;
3,當三目運算子的可能返回中有常量時,返回的是值;
10,小結:
1,bool 型別是 c++ 新增加的基礎型別;
2,bool 型別的值只可能是 true 和 false;
3,c++ 中的引用可以看做變數的別名來使用(返回引用時);
4,c++ 中的三目運算子可以作為左值使用;
5,三目運算子的可能返回都是變數時,返回的是引用;
[深圳**建設](
布林型別和引用
c 中的布林型別 c 在c語言的基本型別系統之上增加了bool c 中的bool可取的值只有true和false 理論上bool只占用乙個位元組 注意 true代表真值,編譯器內部用1來表示 false代表非真值,編譯器內部用0來表示 三目運算子 c語言中的三目運算子返回的是變數值 不能作為左值使用...
C 4 布林型別和引用
注意 true 代表真值,編譯器內部用 1 表示 false 代表非真值,編譯器內部用 0 表示。test 1.cpp include int main 輸出 b 0 b 1 b 1 test 2.cpp include int main 輸出 sizeof b 1 b 0,a 0 b 1,a 1 ...
3 布林型別和引用
1 c 中的布林型別 c 在c語言的基本型別系統之上增加了bool c 中的bool可取的值只有 true 和 false 理論上bool只佔乙個位元組 注意 true代表真值,編譯器內部用1來表示 false代表非真值,編譯器內部用0來表示 2 布林型別的值 bool b 0 printf b d...