int main(){ int a = 0; double b = 0.0; cin >> a; cin >> b; cout << "a = " << a << " b = " << b << endl; system("pause"); return EXIT_SUCCESS;}运行结果如下:
文章插图
缺省参数概念:
缺省参数是声明或定义函数时为函数的参数指定一个默认值 。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参 。
void PrintNum(int n = 0){ cout << n << endl;}int main(){ PrintNum();// 无参数时 , 使用参数的默认值 PrintNum(10);// 有参数时,使用指定的实参 system("pause"); return EXIT_SUCCESS;}全缺省参数参数都要一个默认值,给定的实参依次从左向右给形参赋值
注意:我们在调用函数时,只能缺省最右边的若干个参数,形如:
Fun(4, , 6);
这种调用是错误的调用方法 。void Func(int a = 10, int b = 20, int c = 30){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl;}int main(){ // 实参从左向右一次给形参赋值 Func(); Func(1); Func(1, 2); Func(1, 2, 3); system("pause"); return EXIT_SUCCESS;}运行结果如下:
文章插图
半缺省参数只有部分形参给定了默认值,半缺省参数必须从右往左依次来给出,不能间隔着给 。
值得注意的是,缺省参数只能为最右边的若干个 。
形如:
void Fun(int a=10, int b, int c = 30) { }
这样的语句是错误的用法 。形如:
Fun(1, ,3)
这种调用也是错误的 。void Func(int a, int b = 10, int c = 30){ cout << "a = " << a << endl; cout << "b = " << b << endl; cout << "c = " << c << endl;}int main(){ Func(1); Func(1, 2); Func(1, 2, 3); system("pause"); return EXIT_SUCCESS;}运行结果如下:
文章插图
注意:
- 半缺省参数必须从右向左依次给出,不能间隔着给
- 缺省参数不能在声明中和定义中同时出现(推荐写在声明中)
- 缺省参数必须是全局变量和常量
- C语言中不支持缺省参数
- const类型定义: 指明变量或对象的值是不能被更新,引入目的是为了取代预编译指令
- 可以保护被修饰的东西,防止意外的修改,增强程序的健壮性
- 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高
- 【命名空间+缺省参数+const总结+引用总结+内联函数+auto关键字 C++初阶】可以节省空间,避免不必要的内存分配
- const离谁近,谁就不能被修改
- const修饰一个变量时 , 一定要给这个变量初始化 , 若不初始化,在后面也不能初始化
常变量: const 类型说明符 变量名 常引用: const 类型说明符 &引用名 常对象: 类名 const 对象名 常成员函数: 类名::fun(形参) const 常数组: 类型说明符 const 数组名[大小] 常指针: const 类型说明符* 指针名 ,类型说明符* const 指针名
推荐阅读
- 手机怎么把QQ空间说说一次性全删掉(qq如何恢复删掉的说说)
- 怎么一次性删掉QQ空间里的全部说说(翻看以前qq空间的说说)
- 怎么把空间说说全部清空(qq空间一键清空所有说说)
- 手机QQ空间怎么一次性删除说说求解(怎么一键删除qq说说)
- qq空间说说怎么全部删除(怎样一键清空qq空间)
- 如何注销空间 1980717Z空间
- qq空间说说怎么全部删除(qq空间说说一键恢复)
- QQ空间说说太多怎么一次性全删除(说说可以一键删除吗)
- 手机QQ空间怎么一次性删除说说求解(一键删除qq说说)
- 用电脑扣扣空间说说怎么批量删除(怎么批量删除自己qq空间说说)