跳轉到內容

程式語言導論/強制型別轉換

來自華夏公益教科書,開放的書籍,為開放的世界

強制型別轉換

[編輯 | 編輯原始碼]

許多程式語言支援將一個值轉換為另一個不同資料型別的值。這種型別的轉換可以是隱式或顯式的。隱式轉換,也稱為強制型別轉換,是自動完成的。顯式轉換,也稱為強制轉換,由程式碼指令執行。此程式碼將一個數據型別的變數視為屬於另一個數據型別。支援隱式轉換的語言定義了在涉及基本相容值時將自動應用的規則。下面的 C 程式碼演示了隱式和顯式強制型別轉換。在第 2 行中,int 常量 3 在賦值之前自動轉換為 double(隱式強制型別轉換)。透過用括號包含目標型別來執行顯式強制型別轉換,這在第 3 行中完成。

double x, y;
x = 3;            // implicitly coercion (coercion)
y = (double) 5;   // explicitly coercion (casting)

當允許執行隱式或顯式引數強制型別轉換時,一個函式被認為是多型的。如果對運算元也是有效的,則相關運算子被認為是多型運算子。下面,一段 C++ 程式碼示例了這些多型表示式。

#include <iostream>
void f(double x) {     // polymorphic function
  std::cout << x << std::endl;
}

int main() {
  double a = 5 + 6.3;  // polymorphic operator
  std::cout << a << std::endl;

  f(5);
  f((double) 6);
}

過載 · 引數多型性

華夏公益教科書