天天看點

布爾類型、引用

  1. C++在C語言的基本類型系統之上增加了bool
  2. C++中的bool可取的值隻有true和false
  3. 理論上隻占用一個位元組
  4. bool類型隻有true(非0)和false(0)兩個值
  5. 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++中引用旨在大多數的情況下代替指針

- 功能性:可以滿足多數需要使用指針的場合

- 安全性:可以避開由于指針操作不當而帶來的記憶體錯誤

- 操作性:簡單易用,又不失功能強大

繼續閱讀