C++ 中的型別轉換


本文介紹 C++ 中存在的型別轉換方式。型別轉換通常分為隱式和顯式兩種。

  • 隱式型別轉換

    隱式型別轉換也被稱為自動型別轉換,是編譯器在未經使用者外部觸發下完成的。當表示式中存在多於一種資料型別時將發生這種情況。

    所有資料型別都將升級到較大變數的資料型別。

bool -> char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double

隱式轉換可能導致部分資訊丟失,例如符號。

示例

 線上演示

#include <iostream>
using namespace std;
int main() {
   int a = 10;
   char b = 'a';
   a = b + a;
   float c = a + 1.0;
   cout << "a : " << a << "\nb : " << b << "\nc : " << c;
}

輸出

a : 107
b : a
c : 108

顯式型別轉換

顯式型別轉換也被稱為型別轉換。在此,使用者可以將結果強制轉換為特定的資料型別。在 C++ 中,有兩種方法可以實現此功能,一種是使用括號中的表示式,另一種是使用 static_cast 或 dynamic_cast

示例

 線上演示

#include <iostream>
using namespace std;
int main() {
   double x = 1.574;
   int add = (int)x + 1;
   cout << "Add: " << add;
   float y = 3.5;
   int val = static_cast<int>(y);
   cout << "\nvalue: " << val;
}

輸出

Add: 2
value: 3

更新於: 2020 年 1 月 3 日

2K+ 次觀看

開啟您的 職業生涯

完成課程認證

開始
廣告
© . All rights reserved.