首頁  >  文章  >  後端開發  >  C++ 函式參數型別的轉換規則

C++ 函式參數型別的轉換規則

王林
王林原創
2024-04-13 21:24:02594瀏覽

C 函數參數型別轉換規則包括: 無符號型別轉換為有符號型別、精確度低的型別轉換為精確度高的型別、浮點型別之間的轉換、相容的指標型別之間轉換。實戰案例:可以傳遞無符號整數、精確度低的整數和浮點型別作為參數,編譯器會隱式轉換為對應型別。

C++ 函数参数类型的转换规则

C 函數參數類型轉換規則

#在 C 中,函數可以宣告為接受特定類型的參數。如果傳遞給函數的參數類型與函數宣告中指定的類型不同,則編譯器會嘗試將參數轉換為正確的類型。此轉換稱為隱式型別轉換。

轉換規則

C 中的隱式類型轉換規則如下:

  • 無符號型別轉換為有符號類型:無符號整數型別可以轉換為有符號整數型別。例如,unsigned int 可以轉換為 int
  • 精度低的類型轉換為精度高的類型:精度低的整數類型可以轉換為精度高的整數類型。例如,short 可以轉換為 int
  • 浮點類型之間的轉換:較小精度的浮點類型可以轉換為較大精度的浮點類型。例如,float 可以轉換為 double
  • 指標類型之間的轉換:相容的指標類型可以相互轉換。例如,指向導出類別的指標可以轉換為指向基底類別的指標。

實戰案例

以下程式碼示範了 C 函數參數型別轉換的用法:

#include <iostream>

void printInteger(int n) {
  std::cout << "Integer: " << n << std::endl;
}

int main() {
  // 传递无符号整数作为参数
  unsigned int ui = 123;
  printInteger(ui);  // 隐式转换为有符号整数

  // 传递精度低的整数作为参数
  short s = 456;
  printInteger(s);  // 隐式转换为有符号整数

  // 传递浮点类型作为参数
  float f = 1.23f;
  printInteger((int)f);  // 显式转换为整数

  return 0;
}

程式輸出:

Integer: 123
Integer: 456
Integer: 1

以上是C++ 函式參數型別的轉換規則的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn