c语言中缺省参数的类型总结

 更新时间:2021年09月03日 08:29:12   作者:小妮浅浅  
在本篇文章里小编给大家整理了一篇关于c语言中缺省参数的类型总结内容,有兴趣的朋友们可以跟着学习参考下。

1、函数全缺省参数,函数在定义或者声明时,所有的形参都默认值。

#include <stdio.h>
//x,y为函数的形参,如果函数被调用时,没有设置x和y值,x值默认为100,y值默认为5
int sub(int x=100,int y=5)
{
    return (x-y);
}
int main(void)
{
    int a=20;
    int b=10;
    //变量a、b为sub函数的实参
    printf("sub函数计算结果 = %d\n",sub(a, b));
    //注意:我们并没有为sub函数设置实参,此时默认x=100 y=5
    printf("sub函数计算结果 = %d\n",sub());
    return 0;
}
/*
输出:
sub函数计算结果 = 10
sub函数计算结果 = 95
*/

2、函数半缺省参数,函数在定义或者声明时,只有一部分形参有默认值。

#include <stdio.h>
//x,y为函数的形参,如果函数被调用时,没有设置y值,y值默认为5
 
int sub(int x,int y=5)
{
    return (x-y);
}
int main(void)
{
    int a=20;
    int b=10;
    //变量a、b为sub函数的实参
    printf("sub函数计算结果 = %d\n",sub(a, b));
    //注意:我们并没有为sub函数第二个参数设置实参,此时默认y=5
    printf("sub函数计算结果 = %d\n",sub(a));
    return 0;
}
/*
输出:
sub函数计算结果 = 10
sub函数计算结果 = 15
*/

知识点扩充:

1)半缺省参数 必须 从右向左 依此 给出,不能间隔着给。原因:函数调用时,需要将参数压栈,参数压栈是 从右向左 依次 压栈,若缺省参数间隔着给,则 将会出现 问题

2)缺省参数 不能在 函数声明 和 定义中 同时 出现,尽量在声明中给出。原因:如果 缺省参数 的 声明和定义 位置同时存在,恰巧两个位置提供的值不同,编译器将 无法判断到底 该使用 哪一个。

3)缺省值 必须 是 常量 或者全局变量。

4) C语言不支持 (编译器不支持)

到此这篇关于c语言中缺省参数的类型总结的文章就介绍到这了,更多相关c语言中缺省参数的两种类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++入门概览和尝试创建第一个C++程序

    C++入门概览和尝试创建第一个C++程序

    这篇文章主要介绍了C++入门概览和尝试创建第一个C++程序,同时也包括编写类的示例展示C++面向对象的特性,需要的朋友可以参考下
    2015-09-09
  • C++ static的作用解读

    C++ static的作用解读

    这篇文章主要介绍了C++ static的作用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 浅谈C++11中的几种锁

    浅谈C++11中的几种锁

    本文主要介绍了C++11中的几种锁,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • c语言全局变量和局部变量问题及解决汇总

    c语言全局变量和局部变量问题及解决汇总

    局部变量能否和全局变量重名,如何引用一个已经定义过的全局变量,全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?,接下来为您一一介绍
    2013-01-01
  • C语言实现计算圆周长以及面积

    C语言实现计算圆周长以及面积

    这篇文章主要介绍了C语言实现计算圆周长以及面积方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C++ push_back()函数使用详解

    C++ push_back()函数使用详解

    这篇文章主要介绍了C++ push_back()函数使用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Qt中QPixmap、QImage、QPicture、QBitmap四者区别详解

    Qt中QPixmap、QImage、QPicture、QBitmap四者区别详解

    Qt 提供了四个类来处理图像数据:QImage、QPixmap、QBitmap 和 QPicture,本文就详细的介绍一下四者区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Qt在vs2019中使用及设置方法

    Qt在vs2019中使用及设置方法

    这篇文章主要介绍了Qt在vs2019中使用及设置方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Matlab实现绘制立体玫瑰花的示例代码

    Matlab实现绘制立体玫瑰花的示例代码

    这篇文章主要介绍了如何利用Matlab实现绘制更立体的玫瑰花,文中的示例代码讲解详细,对我们学习Matlab有一定的帮助,需要的可以参考一下
    2023-02-02
  • C++实现LeetCode(18.四数之和)

    C++实现LeetCode(18.四数之和)

    这篇文章主要介绍了C++实现LeetCode(18.四数之和),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论