广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++详细分析讲解函数参数的扩展
  • 208
分享到

C++详细分析讲解函数参数的扩展

2024-04-02 19:04:59 208人浏览 薄情痞子
摘要

目录一、函数参数的默认值二、函数占位参数三、小结一、函数参数的默认值 c++ 中可以在函数声明时为参数提供一个默认值当函数调用时没有提供参数的值,则使用默认值参数的默认值必须在函数声

一、函数参数的默认值

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

下面看一段代码:

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

下面分别是该程序在 C++ 和 C语言环境下的编译结果:

在 C++ 编译环境下程序能够编译通过,而在 C 语言条件下就不行,这就说明了函数参数的默认值是 C++ 语言对 C语言的一个扩展。且函数参数的默认值在定义时不会报错,如果放在函数申明时会报错。

函数默认参数的规则

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

如下所示:

下面看一段代码感受一下:

#include <stdio.h>
int add(int x, int y = 0, int z = 0);
int main(int argc, char *argv[])
{
    printf("%d\n", add(1));
    printf("%d\n", add(1, 2));
    printf("%d\n", add(1, 2, 3));
    return 0;
}
int add(int x, int y, int z)
{
    return x + y + z;
}

下面为输出结果:

二、函数占位参数

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

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

也就是说,下面这种表示方法在 C++ 中是没有问题的:

函数占位参数的意义

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

就比如说,下面这两种表示方式,在 C++ 中表示相同的意思,表示没有参数输入;而在C 语言中前者表示可输入参数个数不受限制,而后者表示没有参数输入

下面看一段代码:

#include <stdio.h>
int func(int x, int = 0);
int main(int argc, char *argv[])
{
    printf("%d\n", func(1));
    printf("%d\n", func(2, 3));
    return 0;
}
int func(int x, int)
{
    return x;
}

下面为改代码在C++和C语言两种编译条件下的输出结果:

三、小结

  • C++ 中支持函数参数的默认值
  • 如果函数调用时没有提供参数值,则使用默认值
  • 参数的默认值必须从右向左提供
  • 函数调用时使用了默认值,则后续参数必须使用默认值
  • C++ 中支持占位参数,用于兼容C语言中的不规范写法

到此这篇关于C++详细分析讲解函数参数的扩展的文章就介绍到这了,更多相关C++参数的扩展内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++详细分析讲解函数参数的扩展

本文链接: https://www.lsjlt.com/news/146721.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++详细分析讲解函数参数的扩展
    目录一、函数参数的默认值二、函数占位参数三、小结一、函数参数的默认值 C++ 中可以在函数声明时为参数提供一个默认值当函数调用时没有提供参数的值,则使用默认值参数的默认值必须在函数声...
    99+
    2022-11-13
  • C++超详细分析讲解内联函数
    目录宏函数(带参数的宏)的缺点inline修饰的函数就是内联函数内联函数的特点宏函数和内联函数的区别宏函数(带参数的宏)的缺点 第一个问题:宏函数看起来像一个函数调用,但是会有隐藏一...
    99+
    2022-11-13
  • JavaScript函数扩展与箭头函数超详细讲解
    目录函数参数扩展rest参数箭头函数箭头函数的使用规范箭头函数的嵌套箭头函数案例函数参数扩展 ES6 允许给函数参数赋初始值: 形参初始值 具有默认值的参数,一般位置要靠后(潜规则)...
    99+
    2022-11-13
    JavaScript函数扩展 JavaScript箭头函数
  • C++超详细讲解析构函数
    目录特性析构函数处理自定义类型编译器生成的默认析构函数特性 析构函数是特殊的成员函数 特征如下: 析构函数名是~类名;无参数无返回值;一个类有且只有一个析构函数;对象声明周期结束,编...
    99+
    2022-11-13
  • C++超详细讲解函数参数的默认值
    目录1.参数默认值的指定方式2.参数默认值的指定规则1.参数默认值的指定方式 在 C++ 中,可以在函数声明时为参数提供一个默认值。这样在函数调用时,如果没有提供函数参数值,则使用默...
    99+
    2022-11-13
  • Python函数参数分类使用与新特性详细分析讲解
    目录参数分类一,定义与使用角度二,传参方式角度1,位置参数2,默认参数3,可变参数4,关键字参数三,参数新特性1,仅位置参数2,仅关键字参数(命名关键字参数)函数参数看似很平常,在深...
    99+
    2023-01-28
    Python函数参数分类 Python函数参数特性
  • C语言中main函数与命令行参数详细讲解
    目录一、main 函数的概念二、main 函数的本质命令行三、main 函数的参数四、main 函数一定是程序执行的第一个函数吗五、小结一、main 函数的概念 C语言中 main ...
    99+
    2022-11-13
  • C语言详细讲解数组参数与指针参数
    目录一、C语言中的数组参数退化为指针的意义二、二维数组参数三、等价关系四、被忽视的知识点五、小结一、C语言中的数组参数退化为指针的意义 C 语言中只会以值拷贝的方式传递参数 当向函数...
    99+
    2022-11-13
  • C++超详细讲解构造函数
    目录类的6个默认成员函数构造函数特性编译器生成的默认构造函数成员变量的命名风格类的6个默认成员函数 如果我们写了一个类,这个类我们只写了成员变量没有定义成员函数,那么这个类中就没有函...
    99+
    2022-11-13
  • C++超详细讲解函数对象
    目录一、客户需求二、存在的问题三、解决方案四、函数对象五、小结一、客户需求 编写一个函数 函数可以获得斐波那契数列每项的值每调用一次返回一个值函数可根据需要重复使用 下面来看第一个...
    99+
    2022-11-13
  • C++超详细讲解函数重载
    目录1 函数重载的定义2 构成函数重载的条件3 编译器调用重载函数的准则4 函数重载的注意事项4.1 避开重载带有指定默认值参数的函数4.2 注意函数重载遇上函数指针4.3 C++编...
    99+
    2022-11-13
  • C语言详细分析讲解内存管理mallocreallocfreecalloc函数的使用
    目录C语言内存管理一、动态空间申请二、动态空间的扩容三、释放内存C语言内存管理 malloc && realloc && free &&...
    99+
    2022-11-13
  • C语言超详细讲解库函数
    目录1 返回整数的getchar函数2 更新顺序文件3 缓冲输出与内存分配4 库函数练习1 返回整数的getchar函数 代码: #include<stdio.h> ...
    99+
    2022-11-13
  • JavaScript中运算符与数组扩展详细讲解
    目录运算符扩展运算符指数运算符链判断运算符Null判断运算符逻辑赋值运算符数组扩展方法Array.from()Array.of()copyWithin()find()fill()fl...
    99+
    2022-11-13
    JS运算符与数组扩展 JS数组扩展 JS运算符
  • C++超详细讲解构造函数与析构函数的用法及实现
    目录写在前面构造函数和析构函数语法作用代码实现两大分类方式三种调用方式括号法显示法隐式转换法正确调用拷贝构造函数正常调用值传递的方式给函数参数传值值传递方式返回局部对象构造函数的调用...
    99+
    2022-11-13
  • C语言详细讲解qsort函数的使用
    目录qsort1.int型2.float型3.struct型qsort 功能:Performs a quick sort.(快速排序)参数:void qsort( void *bas...
    99+
    2022-11-13
  • C++详细讲解常用math函数的用法
    目录1、fabs(double x)2、floor(double x)ceil(double x)3、pow(double x,double n)4、sqrt(double x)5、...
    99+
    2022-11-13
  • C++超详细讲解拷贝构造函数
    目录构造函数特征编译器生成的拷贝构造拷贝构造的初始化列表显式定义拷贝构造的误区结论构造函数 只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对...
    99+
    2022-11-13
  • C语言函数超详细讲解上篇
    目录前言1、函数是什么?2、C语言中函数的分类2.1 库函数2.1.1 如何学会使用库函数2.1.2 自定义函数3、函数的参数3.1 实际参数(实参)3.2 形式参数(形参)4、函数...
    99+
    2022-11-13
  • C语言函数超详细讲解下篇
    目录前言函数的声明和定义函数声明函数定义举例简单的求和函数把加法单独改写成函数添加函数声明带头文件和函数声明静态库(.lib)的生成静态库文件的使用方法函数递归什么是递归?递归的两个...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作