函数参数的传递方式_定义函数时必须确定参数个数「建议收藏」

函数参数的传递方式_定义函数时必须确定参数个数「建议收藏」一、默认参数1、默认参数简介2、代码示例-默认参数二、默认参数定义规则1、默认参数定义在参数列表末尾2、反面示例-默认参数后有普通参数编译报错3、正面示例-默认参数需要放在最后_默认参数

博客总结 :

  • 在 声明 函数时 , 为 函数参数 定义一个默认值 ;
  • ” 默认参数 ” 必须 定义在 参数列表 的 末尾 ;

一、默认参数


1、默认参数简介

” 默认参数 ” 概念 : C++ 语言 中的 函数 , 可以在 声明 函数时 , 为 函数参数 定义一个默认值 ;

” 默认参数 ” 运行机制 : 在调用 有默认参数值 的 函数时 , 如果没有提供 某个有默认值参数 的 实参 , 那么编译器在 编译阶段 , 就会使用默认值当做实参 ;

” 默认参数 ” 可以 简化函数调用 和 提高代码重用性 ;

2、代码示例 – 默认参数

下面的代码中 , 为 void fun(int num = 5) 函数 , 提供了默认参数值 5 ;

如果调用 fun 函数 , 不传入参数 , 则使用默认参数值 5 ; 不传入参数 , 打印的值为 5 ;

    // 不传入参数 , 使用默认参数值 5 
    fun();

如果调用 fun 函数 , 显示传入参数 , 则使用传入的参数 ; 传入参数 7 , 则打印的值为 7 ;

    // 显式传入参数值7
    fun(7);

代码示例 :

// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;

// 设置了默认参数的函数
void fun(int num = 5) { 
   
    cout << "num = " << num << endl;
}

int main() { 
   
    // 不传入参数 , 使用默认参数值 5 
    fun();
    // 显式传入参数值7
    fun(7);
    

    // 控制台暂停
    system("pause");

    return 0;
}

执行结果 :

num = 5
num = 7
请按任意键继续. . .

在这里插入图片描述

二、默认参数定义规则


1、默认参数定义在参数列表末尾

” 默认参数 ” 必须 定义在 参数列表 的 末尾 ;

一旦在函数的 参数列表 中出现了 ” 默认参数 ” , 那么 之后的所有参数 都必须有 默认参数 , 否则 编译时 会报错 ;

2、反面示例 – 默认参数后有普通参数编译报错

在下面的函数 void fun(int num, int num1 = 5, int num2) 中 , 第三个参数 num2 是普通的参数 , 只要出现了第一个默认参数 , 之后的所有参数都必须是默认参数 ;

反面代码示例 :

// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;

// 设置了默认参数的函数
void fun(int num, int num1 = 5, int num2) { 
   
    cout << "num = " << num << " , num1 = " << num1 << " , num2 = " << num2 << endl;
}

int main() { 
   
    // 显式传入参数值7
    fun(7);
    

    // 控制台暂停
    system("pause");

    return 0;
}

执行结果 :

1>------ 已启动生成: 项目: HelloWorld, 配置: Debug Win32 ------
1>Hello.cpp
1>Y:\002_WorkSpace\002_VS\HelloWorld\HelloWorld\Hello.cpp(7): error C2548: “fun”: 缺少形参 3 的默认实参
1>Y:\002_WorkSpace\002_VS\HelloWorld\HelloWorld\Hello.cpp(13,10): fatal error C1903: 无法从以前的错误中恢复;正在停止编译
1>“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\HostX86\x86\CL.exe”中的内部编译器错误
1>  请选择 Visual C++
1>“帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件来获得详细信息
1>已完成生成项目“HelloWorld.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0==========

在这里插入图片描述

3、正面示例 – 默认参数需要放在最后

下面的 函数参数 中 , num 是 普通参数 , 没有默认值 ;

后面两个 num1 和 num2 都是有 默认值 的参数 ;

之后如果还有参数 , 也必须有默认值 ;

如果想要设置没有默认值的参数 , 那么必须放在前面 ;

// 设置了默认参数的函数
void fun(int num, int num1 = 5, int num2 = 7) { 
   
    cout << "num = " << num << " , num1 = " << num1 << " , num2 = " << num2 << endl;
}

完整代码示例 :

// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;

// 设置了默认参数的函数
void fun(int num, int num1 = 5, int num2 = 8) { 
   
    cout << "num = " << num << " , num1 = " << num1 << " , num2 = " << num2 << endl;
}

int main() { 
   
    // 显式传入参数值7
    fun(7);
    

    // 控制台暂停
    system("pause");

    return 0;
}

执行结果 :

num = 5
num = 7
请按任意键继续. . .

在这里插入图片描述

今天的文章函数参数的传递方式_定义函数时必须确定参数个数「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81521.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注