ホームページ >バックエンド開発 >C++ >C++ 関数パラメータの型変換規則

C++ 関数パラメータの型変換規則

王林
王林オリジナル
2024-04-13 21:24:02644ブラウズ

C 関数パラメーターの型変換規則には、符号なし型から符号付き型への変換、低精度型から高精度型への変換、浮動小数点型間の変換、互換性のあるポインター型間の変換が含まれます。実際のケース: 符号なし整数、低精度整数、および浮動小数点型をパラメーターとして渡すことができ、コンパイラーはそれらを暗黙的に対応する型に変換します。

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

C 関数パラメータの型変換ルール

C では、特定の型のパラメータを受け入れるように関数を宣言できます。関数に渡された引数の型が関数宣言で指定された型と異なる場合、コンパイラは引数を正しい型に変換しようとします。この変換は暗黙的な型変換と呼ばれます。

変換ルール

C における暗黙的な型変換ルールは次のとおりです:

  • 符号なし型から符号付き型への変換: 符号なし整数型は符号付き整数型に変換できます。たとえば、unsigned intint に変換できます。
  • 低精度型を高精度型に変換する: 低精度整数型を高精度整数型に変換できます。たとえば、shortint に変換できます。
  • 浮動小数点型間の変換: 精度の低い浮動小数点型は、精度の高い浮動小数点型に変換できます。たとえば、floatdouble に変換できます。
  • ポインタ型間の変換: 互換性のあるポインタ型は相互に変換できます。たとえば、派生クラスへのポインターは、基本クラスへのポインターに変換できます。

実践的なケース

次のコードは、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。