C 中的布林型別和引用

2021-09-23 10:08:23 字數 2963 閱讀 2269

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