計算機概論:C/C++程式設計

 

 

2章、C++程式基本元素

 

 


授課教師:陳慶瀚

WWW : http://www.miat.ee.isu.edu.tw/cpp

E-mail : pierre@isu.edu.tw   

 

2.5 型別轉換(Casting)

在一個含有assignment(=)C++陳述中,如果assignment兩邊的資料型別不同,則C++將會執行自動型別轉換。例如我們要將一個浮點數值5.6指定給一個整數變數x

int x;

x=5.6;

這種寫法雖然不好,但是C++編譯器是允許的,編譯器會自動將浮點數值5.6轉為整數5,再指定給整數變數x。這種做法稱為「強制型別轉換」。

另外一種情形是:如果我們要將一個整數值5指定給一個浮點數變數:

float y;

y=5;

那麼編譯器的「強制型別轉換」會將5轉為5.0再指定給y

下面這個程式可以讓我們實際觀察不同資料型別的數值經過算術運算以及型別轉換的結果。

/*----------------------------------------------------*/

//                  範例程式2-4

//              算術運算以及資料型別轉換

//                  陳慶瀚,2001

/*----------------------------------------------------*/

void main() 

{ 

int   integer;  //宣告一個整數變數 

float floating;  //宣告一個浮點數變數 

 

floating = 1.0 / 2.0;           // assign 浮點數 0.5

cout<<" floating = 1.0 / 2.0 = "<< floating<<endl;

integer = 1 / 3;                 // assign 整數 0 

cout<<" integer = 1 / 3 = "<< integer <<endl;

floating = (1 / 2) + (1 / 2);  // assign 浮點數 0.0 

cout<<" floating = (1 / 2) + (1 / 2) = "<< floating<<endl;

floating = 3.0 / 2.0;           // assign 浮點數 1.5 

cout<<" floating = 3.0 / 2.0 = "<< floating<<endl;

integer = floating;             // assign 整數 1 

cout<<" integer = floating = "<< integer <<endl;

} 

注意到運算式1/2是一個整運算式(分子分母均為整數),所以它的運算結果就是整數0,當0指定給浮點數floating時仍然是0.0(輸出格式同樣為0)


 

計算機概論:C/C++程式設計

義守大學電機系 陳慶瀚  
2001.10.02