2013/07/28

C++基本資料型態

在寫程式之前
必須要先知道資料有哪些型態可以儲存
資料型態分為兩大類
 ● 基本資料型態
  - 整數 : short, int, long
- 浮點數(有小數點以下) : float, double
- 字元 : char
- 邏輯值 : bool
 ● 衍伸資料型態
- 與結構相關(結合多個基本的資料型態)
+ array
+ struct, union, enum
+ string
- 與位址相關(跟實際存取記憶有關)
+ 指標
+ 位址

基本資料的長度&範圍(會根據不同的compiler有所不同)
- short(16bits) : -32768 ~ 32767
- int (32bits) : -2,147,483,648 ~ 2,147,483,647
- long (32bits) : -2,147,483,648 ~ 2,147,483,647
- float (32bits) : 9.9*(10^-41) ~ 3.402*(10^38)
- double (64bits) : 9.9*(10^-320) ~ 3.402*(10^308)
- char (8bits) : A~Z, a~z, 0~9, #,+,$...
- bool (8bits) : 0 或 1
這邊解釋一下float & double的表達方式
(10^-41)是說10的負41次方
那char所能存放的字元是以ASCII碼
可以參考這個連結知道有哪些符號
在整數與浮點數的部份
如果所要存的資料都是正數(大於0)的話
可以在資料型態的前面加上 unsigned這樣可以存的正數資料量就變成雙倍了
unsigned short : 0 ~ 65535

這邊有個簡單的範例來說明
如何知道每個基本的資料型態所佔的記憶体大小
#include <iostream>

using namespace std;

int main() { 
  cout << "Size of int is    " << sizeof(int)  << "byte" << endl;
  cout << "Size of short is  " << sizeof(short) << "byte" << endl;
  cout << "Size of long is   " << sizeof(long) << "byte" << endl;
  cout << "Size of float is  " << sizeof(float) << "byte" << endl;
  cout << "Size of double is " << sizeof(double)<< "byte" << endl;
  cout << "Size of char is   " << sizeof(char)  << "byte" << endl;
  cout << "Size of bool is   " << sizeof(bool)  << "byte" << endl;
 
  system("pause");
  return 0;
}
將檔案存成size.cpp並執行下列的指令
bcc32 size.cpp

執行size.exe會出現下面的結果
Size of int is      4byte
Size of short is    2byte
Size of long is     4byte
Size of float is    4byte
Size of double is   8byte
Size of char is     1byte
Size of bool is     1byte
這邊說明一下程式的內容
這邊有一個新的函式 : sizeof()
這個函式主要是計算所輸入的變數的記憶体大小
所以我們將資料的型態輸入就可以得出記憶體的大小了
要注意一下這邊的單位是byte
1 byte = 8 bits    

沒有留言:

張貼留言