- C++在C語言的基本類型系統之上增加了bool
- C++中的bool可取的值隻有true和false
- 理論上隻占用一個位元組
- bool類型隻有true(非0)和false(0)兩個值
- C++編譯器會将非0值轉換為true,0值轉換為false
C++中的三目運算符可直接傳回變量本身
-既可作為右值使用,又可作為左值使用
-三目運算符可能傳回的值中如果有一個常量值,則不能作為左值使用
引用
在C++中新增加了引用的概念
-引用可以看作一個定義變量的别名
-引用的文法:type& name = var;
-注意:普通引用在定義時必須用同類型的變量進行初始化
int a = ;
int& b = a;
b = ; //操作b就是操作a
引用作為變量别名而存在,是以在一些場合可以代替指針
引用相對于指針來說具有更好的可讀性和實用性
函數中的引用形參不需要進行初始化
-
const引用
在C++中可以聲明const引用
const type& name = var;
const 引用讓變量擁有隻讀屬性
int a = ;
const int& b = a;
int* p = (int*)&b;
b = ;//error
*p = ;//ok
-
當使用常量對const引用進行初始化時,C++編譯器會為常量值配置設定空間,并将引用名作為這段空間的别名
使用常量對const引用初始化後将生成一個隻讀變量!
引用在C++中的内部實作是一個指針常量
注意:
1. C++編譯器在編譯過程中用指針常量作為引用的内部實作,是以引用所占用的空間大小與指針相同
2. 從使用的角度,引用隻是一個别名,C++為了實用性而隐藏了引用的存儲空間這一細節
引用的意義
C++中引用旨在大多數的情況下代替指針
- 功能性:可以滿足多數需要使用指針的場合
- 安全性:可以避開由于指針操作不當而帶來的記憶體錯誤
- 操作性:簡單易用,又不失功能強大