6.4.2 参数类型转换

    调用函数时,如果实参类型与形参类型不匹配,编译器会对实参自动进行类型转换(隐式转换),形参的类型,取决于函数的声明语句,见代码6.5。

    代码6.5 参数类型转换AutoConversion


    <—————————————文件名:example605.cpp——————————————> 01 #include<iostream> 02 using namespace std; 03 int main() 04 { 05 double m=12;//声明一个double型变量m 06 void print(int);//函数声明 07 print(m);//函数调用时,实参m隐式转换为int型传递给形参 08 return 0; 09 } 10 void print(int n)//函数定义 11 { 12 cout<<"数值:"<<n<<endl; 13 }

    输出结果如下所示。


    数值:12

    【代码解析】编译器通过函数的声明语句得知,代码第6行,函数print()的形式参数是int型,但用double型实参m为其赋值时,编译器会对m进行自动类型转换(隐式转换),这在一定程度上简化了程序的书写。

    注意

    除了编译器提供的自动类型转换以外,还可以采用显式强制转换的方式对参数进行转换。