1. 程式人生 > >基本內建型別 (摘錄自 c++ primer)

基本內建型別 (摘錄自 c++ primer)

各種程式設計語言都具有許多獨具特色的特徵,這些特徵決定了每種語言所適合開發的應用程式的種類。程式設計語言也有一些共同的特徵。基本上所有的語言都要提供下列特徵:
  • 內建資料型別,如 整型,字元型等。
  • 表示式和語句:表示式和語句用於操縱上述型別的值。
  • 變數:程式設計師可以使用變數對所使用的物件命名。
  • 控制結構:如if, for, while等;程式設計師可以使用控制結構有條件的執行或者重複執行一組動作。
  • 函式:程式設計師可以使用函式把行為抽象為可呼叫的計算單元。
大多數現代程式設計語言都採用兩種方式擴充上述基本特徵集:
  • 允許程式設計師通過自定義資料型別擴充套件該語言。
  • 提供一組庫例程,這些例程定義了一些並非內建在語言中的實用函式和資料型別。
c++ 是提供了一組內建的資料型別、操縱這些型別的操作符和一組少量的程式流控制語句。c++是一門簡單的語言,c++的表達能力是通過支援一些允許程式設計師自定義的資料結構的機制來提升的。包括c++在內的許多程式設計語言允許程式設計師定義型別的不僅包括資料還包括操作。c++設計的主要目標之一就是允許程式設計師自定義型別,而且這些型別和內建型別一樣易於使用。 型別是所有程式的基礎,型別告訴我們資料代表什麼意思以及可以對資料執行哪些操作。 基本內建型別:
  1. bool 布林型別
  2. char型別,           字元型別                    8位
  3. wchar_t型別         寬字元型別                       32位
  4. short                      短整型                              16位
  5. int                          整型                                  32位
  6. long                       長整型                              32位
  7. float                       單精度浮點型                    32位 (6位有效數字)
  8. double                   雙精度浮點型                    64位 (10位有效數字)
  9. long double          擴充套件精度浮點型別             96位
這個是本人的個人電腦上(32位linux系統)得出的結果,具體情況會應該編譯器等不同而有所不同。比如:

以前的系統是16位的所以int只有2位元組,現在都是32位了,所以大部分編譯器把int提升為32位,即4位元組在TC中int似乎還是16位的;

win32 中 long 和 int 範圍一樣的,因為C/C++語言標準只是規定sizeof(long int)> =sizeof(int) ,取等號也是可以的,具體如何實現由各個編譯器廠家決定。
  • shor、int與long
這三個型別都表示整形值,儲存空間的大小不同,一般,short型別為半個機器字長,int型別為一個機器字長,而long型別為兩個機器字長,根據編譯器的不同,其表示長度是有區別的,上面的列表只供參考,另外,int 、short、long都預設是帶符號型,要獲得無符號型別則必須制定該型別為unsigned,比如unsigned long (機器字長:計算機能直接處理的二進位制資料的位數,它決定了計算機的運算精度;目前流行的是32位和64位)
  • float、double與long double
這三個型別都是浮點數,一般,float用一個字長來表示,double用兩個字長,long double 用3個或者4個字長來表示。型別的取值範圍決定了浮點數所含的有效數字位數。 實際應用中float型別精度通常是不夠用的——float只能保證6位有效數字,而double型至少可以保證10位有效數字,能滿足大多數計算的需要。
Single ( Fortran's REAL*4, C's float ), ( Obligatory ), Double ( Fortran's REAL*8, C's double ), ( Ubiquitous ), Double-Extended ( Fortran REAL*10+, C's long double ), ( Optional ).