首页 技术 正文
技术 2022年11月16日
0 收藏 632 点赞 4,508 浏览 1137 个字

0.目录

1.函数参数的默认值

2.函数默认参数的规则

3.函数占位参数

4.小结

1.函数参数的默认值

  • C++可以在函数声明时为参数提供一个默认值
  • 当函数调用时没有提供参数的值,则使用默认值

参数的默认值必须在函数声明中指定:

运行以下程序:

#include <stdio.h>int mul(int x = 0);int main()
{
printf("%d\n", mul());
printf("%d\n", mul(-1));
printf("%d\n", mul(2)); return 0;
}int mul(int x)
{
return x * x;
}

运行结果如下:

[root@bogon Desktop]# g++ test.cpp
[root@bogon Desktop]# ./a.out
0
1
4

以下这两种情况都会报错:

(我们在定义函数默认参数值的时候只需要在声明的时候给出,在定义的时候不给出,这样是符合语法的。如果在声明时不给出,只在定义时给出,也会报错。)

#include <stdio.h>int mul(int x = 0);int main()
{
printf("%d\n", mul());
printf("%d\n", mul(-1));
printf("%d\n", mul(2)); return 0;
}int mul(int x = 5)
{
return x * x;
}
#include <stdio.h>int mul(int x);int main()
{
printf("%d\n", mul());
printf("%d\n", mul(-1));
printf("%d\n", mul(2)); return 0;
}int mul(int x = 5)
{
return x * x;
}

2.函数默认参数的规则

  • 参数的默认值必须从右向左提供
  • 函数调用时使用了默认值,则后续参数必须使用默认值

3.函数占位参数

在C++中可以为函数提供占位参数:

  • 占位参数只有参数类型声明,而没有参数名声明
  • 一般情况下,在函数体内部无法使用占位参数

函数占位参数的意义:

  • 占位参数与默认参数结合起来使用
  • 兼容C语言程序中可能出现的不规范写法

下面的两种声明方式等价吗?

void func(); <——> void func(void);

回答:在C语言中是不等价的,在C++中是等价的!

通过占位参数与默认参数的结合使用,就可以兼容C语言中的不规范的的写法,并且能够编译通过了。

#include <stdio.h>void func(int = 0, int = 0){}int main()
{
func();
func(1, 2); return 0;
}

4.小结

  • C++中支持函数参数的默认值
  • 如果函数调用时没有提供参数值,则使用默认值
  • 参数的默认值必须从右向左提供
  • 函数调用时使用了默认值,则后续参数必须使用默认值
  • C++中支持占位参数,用于兼容C语言中的不规范写法
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,489
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,290