《C++primer》第二章--變量和基本內置類型


基本內置類型

  • 如何選擇類型的幾點建議
    • 當明確知曉數值不能為負數時,選用無符號類型
    • 使用int進行整數運算。因為short一般表示的范圍比較小,而long一般和int有相同的范圍。如果表示的范圍超過了int就使用long long
    • 算術運算時盡量不要使用char和bool,只有在存放字符型數據和布爾值的時候使用。因為char的符號在有的機器上面是有符號,在另外的一些機器上面確實無符號的,很容易出錯。
    • 執行浮點數運算時使用double。因為float的精度不夠而且float和double的計算代價相差無幾,甚至有些機器上面double的運算速度比float的速度快。
  • 類型轉換
    • 當我們賦值給無符號類型一個超過了它表示的范圍時,結果是初始值對無符號類型表示范圍最大值取余后的結果。例如8bit大小的unsigned char,把-1給它,結果是-1%256,所得結果是255.
    • 把一個負數轉化成一個無符號類型的時候,類似於直接給一個無符號數賦值為一個負數,結果等於這個負數加上無符號數的模(例如上例)。
    • 切勿混用有符號和無符號類型的數據進行運算。
  • 字面值常量
    • 轉義序列
含義 字符 含義 字符
換行符 \n 回車符 \r
縱向制表符 \v 縱向制表符 \t
反斜線 \ 退格符 \b
問號 \? 進紙符 \f
報警(響鈴符) \a 雙引號 \”
單引號 \’ 退格符 \b

還有一種泛化的轉義序列

含義 符號
響鈴 \7
空字符 \0
換行 \12
字符M \115
空格 \40
字符M \x4d

注意:如果反斜線后面跟着的八進制數字超過3個,只有前3個數字與\構成轉義序列


變量

  • 變量定義和聲明
    • 建議初始化每個內置類型的變量。這樣防止不初始化后直接使用帶來的危害。
    • 聲明和定義的區別:聲明規定了變量的類型和名字,而定義在此基礎之上還申請空間,也可能為變量賦初值。
    • 我們可以使用extern int i;的形式,使用在其他文件中定義的變量
    • 變量只能被定義一次可以被聲明很多次,變量的定義必須出現在一個文件中,而其他用到該變量的文件必須對其進行聲明,但是不能重復的定義
  • 標識符的幾點建議
    • C++中標識符由字母,數字和下划線組成,且必須以字母或者下划線開頭
    • 標識符能體現實際含義
    • 變量名一般用 小寫字母
    • 用戶自定義的類名以大寫字母開頭
    • 如果標識符由多單詞組成,則單詞中間應該有明顯的標識

復合類型

  • C++中有幾種復合類型,其中最主要的是指針和引用
  • 引用
    • 引用不是對象,它是給已經存在的對象所起的一個別名
    • 因為引用不是一個對象,所以不能定義引用的引用
    • 引用只能綁定在某個對象身上,即是引用在定義時必須賦初值,而且中間不能改變引用的指向,不能和字面值或者表達式結果綁定在一起
  • 指針
    • 指針和引用區別:指針是一個對象,允許對指針進行賦值或者拷貝,而且在指針的生命周期內,允許它先后指向幾個不同的對象;指針無需在定義時賦初值。
    • 因為引用不是對象,沒有實際地址,所以不能定義指向引用的 指針
    • 解引用操作是針對指針而言的,解引用操作適用於那些確定了指向了某個對象的有效指針。
    • 建議初始化所有指針
    • 面對比較復雜的指針或者引用的聲明的時候,從右往左閱讀有助於理解他的真實含義

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com