C++編程入門系列之四(數據類型)

C++編程入門系列之四(數據類型)

基本數據類型: 5種

分別是: bool(布爾型 )、char(字符型 )、int(整型 )、float(浮點型,表示實數 )、double(雙精度浮點型),關鍵字signed和unsigned、short和long起修飾作用。short類型固定佔2個字節,long類型固定佔4個字節。

signed表示有符號數,unsigned表示無符號數。有符號數以二進制補碼形式存儲,最高位爲符號位,“0”表示正,“1”表示負。無符號整數只能是正數。char型、int型、short型和long型默認情況也就是不加修飾的情況下是有符號(signed)的。

佔字節數:
和機器字長及編譯器有關係:
所以,int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則(ANSI/ISO制訂的):
1 sizeof(short int)<=sizeof(int)
2 sizeof(int)<=sizeof(long int)
3 short int至少應爲16位(2字節)
4 long int至少應爲32位。

unsigned 是無符號的意思。

例如:
16位編譯器
char :1個字節
char*(即指針變量): 2個字節
short int : 2個字節
int: 2個字節
unsigned int : 2個字節
float: 4個字節
double: 8個字節
long: 4個字節
long long: 8個字節
unsigned long: 4個字節

32位編譯器

char :1個字節
char*(即指針變量): 4個字節(32位的尋址空間是2^32, 即32個bit,也就是4個字節。同理64位編譯器)
short int : 2個字節

int: 4個字節
unsigned int : 4個字節
float: 4個字節
double: 8個字節
long: 4個字節
long long: 8個字節
unsigned long: 4個字節

64位編譯器
char :1個字節
char*(即指針變量): 8個字節
short int : 2個字節
int: 4個字節
unsigned int : 4個字節
float: 4個字節
double: 8個字節
long: 8個字節
long long: 8個字節
unsigned long: 8個字節

常量

所謂常量就是在程序運行過程中始終不會變的量,就是直接用文字表示的值,例如,1,23,true,’B’都是常量。常量又分整型常量、實型常量、字符常量、字符串常量和布爾常量。

字符常量是單引號括起來的一個字符,比如:’b’,’?’。還有一些不可顯示字符,例如響鈴、換行、製表符等等,C++提供了一種轉義序列的表示法來表示這些字符。比如:\a表示響鈴,\n表示換行,\t表示水平製表符,\b表示退格,\r表示回車,\表示字符’\’,\”表示雙引號,\’表示單引號。ASCII字符常量佔用1個字節。

字符串常量是用雙引號括起來的字符序列,比如:"China"。字符串常量會在字符序列末尾添加'\0'作爲結尾標記。

符號常量

我們除了可以用文字表示常量以外,還可以給常量起個名字,這就是符號常量。這個符號常量就代表了那個常量。符號常量在使用之前必須聲明,跟變量相似。符號常量聲明形式:const 數據類型說明符 常量名=常量值; 或 數據類型說明符 const 常量名=常量值;。例如,我們給圓周率起個名字,就是符號常量,const float pi=3.1415926;。還有一點必須注意,符號常量聲明時必須賦初值,在其他時候不能改變它的值。使用符號常量與文字常量相比有很多好處:程序的可讀性更高,我們看到這個名字就能看出它的具體意思,再就是最重要的,如果我們多個地方都用了上面那個pi常量,但後來圓周率的值精度我想改一下,只用3.14,這個時候怎麼把所有的pi都換掉呢?我們只需要修改pi的聲明就行了:const float pi=3.14;,但是如果使用文字常量即所有用圓周率的地方直接寫的3.1415926,那麼就必須全找到再換掉,這樣不但麻煩而且容易漏掉。

以上知識點需要回答的問題

  1. 有幾種基本數據類型,分別是什麼?
  2. 分別佔的字節數是是多少?
  3. signed 和unsigned 區別是什麼?
  4. 符號常量需要注意什麼?有什麼好處?
  5. 轉移字符分別有什麼?
  6. 相同的字符序列和字符串有什麼sizeof有什麼不同?

轉自雞啄米課堂並加以適當的修改

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章