程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 淺析定義C++數據類型

淺析定義C++數據類型

編輯:C++入門知識

下面介紹C++數據類型,在C++程序中可以在必要時進行不同C++數據類型間的換算,這些都是在相關論壇上找到的一些方法,在這裡分享一下,供大家相互學習交流。

而在C++,則必須先聲明變量類型再使用變量:int x1 = 1;int x = 1000;float y = 3.14;long z = 457000;這樣,編譯器就可以進行類型檢查,確保程序運行時一切順利。C++數據類型使用不當會導致編譯錯誤或警告,以便分析和糾正之後再運行。

有些數據類型有帶符號和無符號兩種。帶符號signed)數據類型可以包含正數和負數,而無符號C++數據類型只能包含正數。表1.1列出了C++中的數據類型、所要內存量和可能的取值范圍。

數據類型 字節 數取值范圍 :

  1. char 1 -128到126   
  2.  
  3. unsigned char 1 0到255   
  4.  
  5. short 2 -32,768到32,767   
  6.  
  7. unsigned short 2 0到65,535   
  8.  
  9. long 4 -2,147,483,648到2,147,483,648   
  10.  
  11. unsigned long 4 0到4,294,967,295   
  12.  
  13. int 4 同long   
  14.  
  15. unsigned int 4 同unsigned long   
  16.  
  17. float 4 1.2E-38到3.4E381   
  18.  
  19. double 8 2.2E-308到1.8E3082   
  20.  
  21. bool 1 true或false  

從上表可以看出,int與long相同。那麼,為什麼C++還要區分這兩種數據類型呢?實際上這是個遺留問題。在16位編程環境中,int要求2個字節而long要求4個字節。而在32位編程環境中,這兩種數據都用4個字節存放。

C++Builder只生成32位程序,所以int與long相同。說明 在C++ Builder和BorLand C++ 5.0中,Bool是個真正的數據類型。有些C++編譯器有Bool關鍵字,則Bool不是個真正的數據類型。有時Bool只是個typedef,使Bool等價於int。

typedef實際上建立別名,使編譯器在一個符號與另一符號間劃上等號。typedef的語法如下:typedef int Bool;這就告訴編譯器:Bool是int的別名。說明 只有double和float數據類型使用浮點數帶小數點的數)。

其它數據類型只涉及整數值。盡管integer數據類型也可以指定帶小數點的數值,但小數部分會捨棄,只將整數部分賦予整型變量,例如:int x=3.75;得到的x取值為3。注意,這個整數值並不是四捨五入,而是放棄小數部分。

順便說一句,大多數Windows程序很少用到浮點數。C++可以在必要時進行不同C++數據類型間的換算。例如:short result;long num1 = 200;long num2 = 200;result = num1 * num2;這裡我想將兩個長整型的積賦予一個短整型。

盡管這個公式混用了兩種C++數據類型,但C++能夠進行換算。計算結果會怎樣呢?結果會讓你大吃一驚,是25536,這是繞接(wrop)的結果。從表1.1可以看出,短整型的最大取值為32767,在最大值之上加1會怎麼樣呢?得到的是32768。這實際上與汽車裡程計從99999回到00000的道理一樣。為了說明這點,請輸入並運行下列清單1.3中包含的程序。

  1. C與C++中標准輸入實現方式上的一點區別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構思與方法
  4. 玩轉C++語言的幾種方法
  5. 如何更好的進行C++代碼編制

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved