4.函数-参数默认值
4.1 知识点
函数语法复习
// 1 2 3
//void 函数名(参数类型 参数1, 参数类型 参数2......)
//{
// 4
// return 返回值;
//}
- 返回值:如果没有返回值,填
void
,也可以填写任意类型的变量。 - 函数名:可以使用帕斯卡命名法、驼峰命名法等。
- 参数:可以有 0 到多个参数。
- 返回值不是
void
时:必须有return
,且返回对应类型的内容。return
语句会打断函数执行并直接返回结果,后面的代码将不再执行。
参数默认值
带默认值的参数通常称为“可选参数”。
作用是:当调用函数时可以不传入某些参数,未传的参数会使用默认值。
函数定义
void speak(string str = "韬老狮");
void speak2(string a = "123", int i = 0, float f = 0.5f, char c = 'A', string s2 = "sss");
void speak3(int i, string a = "123", float f = 0.5f);
void speak4(int i, string a = "123", float f = 0.5f)
{
cout << a << endl;
cout << i << endl;
cout << f << endl;
}
函数声明
void speak(string str)
{
cout << str << endl;
}
void speak2(string a, int i, float f, char c, string s2)
{
cout << a << endl;
cout << i << endl;
cout << f << endl;
cout << c << endl;
cout << s2 << endl;
}
void speak3(int i, string a, float f)
{
cout << a << endl;
cout << i << endl;
cout << f << endl;
}
注意事项:
- 声明时可以带有默认值,但定义时不能带默认值(除非声明和定义一起完成)。
- 每个参数都可以有默认值,支持多个参数同时使用默认值。
- 如果要混用可选参数,必须将它们放在普通参数的后面。
函数使用
speak("韬老狮,我爱你"); // 输出: 韬老狮,我爱你
speak(); // 输出: 韬老狮
speak2();
// 输出:
// 123
// 0
// 0.5
// A
// sss
speak2("韬老狮123", 2);
// 输出:
// 韬老狮123
// 2
// 0.5
// A
// sss
speak3(3);
// 输出:
// 123
// 3
// 0.5
speak3(4);
// 输出:
// 123
// 4
// 0.5
4.2 知识点代码
Lesson04_函数_参数默认值.cpp
#include <iostream>
using namespace std;
void speak(string str = "韬老狮");
void speak2(string a = "123", int i = 0, float f = 0.5f, char c = 'A', string s2 = "sss");
void speak3(int i, string a = "123", float f = 0.5f);
void speak4(int i, string a = "123", float f = 0.5f)
{
cout << a << endl;
cout << i << endl;
cout << f << endl;
}
int main()
{
std::cout << "参数默认值\n";
speak("韬老狮,我爱你");//韬老狮,我爱你
speak();//韬老狮
speak2();
//123
//0
//0.5
//A
//sss
speak2("韬老狮123", 2);
//韬老狮123
//2
//0.5
//A
//sss
speak3(3);
//123
//3
//0.5
speak3(4);
//123
//4
//0.5
}
#pragma region 知识点一 函数语法复习
// 1 2 3
//void 函数名(参数类型 参数1, 参数类型 参数2......)
//{
// 4
// return 返回值;
//}
//1.返回值,没有返回值填void 可以填写任意类型的变量
//2.函数名,帕斯卡命名法、驼峰命名法等
//3.参数可以是0~n个
//4.如果返回值不是void 那么必须有return对应类型的内容 return可以打断函数语句块中的逻辑 直接停止后面的逻辑
#pragma endregion
#pragma region 知识点二 参数默认值
//有参数默认值的参数 一般称为可选参数
//作用是
//当调用函数时可以不传入参数,不传就会使用默认值作为参数的值
void speak(string str)
{
cout << str << endl;
}
void speak2(string a, int i, float f, char c, string s2)
{
cout << a << endl;
cout << i << endl;
cout << f << endl;
cout << c << endl;
cout << s2 << endl;
}
void speak3(int i, string a, float f)
{
cout << a << endl;
cout << i << endl;
cout << f << endl;
}
//注意:
//1.声明时带有默认值就行了,定义不能带默认值,否则报错(除非声明和定义一起完成)
//2.支持多参数默认值 每个参数都可以有默认值
//3.如果要混用 可选参数 必须写在 普通参数后面
#pragma endregion
4.3 练习题
在使用参数默认参数(可选参数)时的注意事项是什么?
- 声明时带有默认值就行了,定义不能带默认值,否则报错(除非声明和定义一起完成)。
- 支持多参数默认值,每个参数都可以有默认值。
- 如果要混用可选参数,必须写在普通参数后面。
可选参数存在的意义是什么?
- 增强代码的灵活性,我们可以选择性地传递参数。
- 简化函数调用,减少冗余代码,对于一些非必要的参数,可以避免每次调用函数时重复提供相同的值。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com