c++函数(2)

news/2024/11/16 7:20:19/

这里写自定义目录标题

    • 默认参数
    • 函数重载
    • 递归函数
    • 变量周期

默认参数

可为形参指定默认值,如果在函数调用时,没有指定与形参对应的实参时,就自动使用默认值。
默认参数可简化复杂函数的调用。
默认参数在函数名第一次出现在程序中指定,可在函数原型中指定。
比如

iint fun(int x,int y,int z=1);

函数重载

同一个函数名字在不同类型上做类似的操作,为函数重载
比如

int fun(int x,int y)
int fun(double x,double y)
int fun(char *x,char *y)

同一函数名fun,可用不同类型参数进行调用,实际调用的也是不同的函数

内联函数
取代C中的预处理宏函数
宏函数由预处理器对宏进行替换。
内联函数通过编译器实现,是真正的函数,在调用 时,内联函数像宏函数 一样展开,没有一般函数的参数压栈和退栈操作。
使用inline关键字定义内联函数,放在函数定义或声明中函数原型之前。

比如

inline  int fun(int x){
...
}

类说明定义的任何函数被编译器认为是内联函数,没有inline说明也无所谓。
内联函数有局限性,执行代码不能太多,否则编译器会放弃内联方式

递归函数

函数在函数体内部直接或间接调用自己,为递归函数
可解决复杂问题

int fact(int n){if (n<=1) return 1;else return n*fact(n-1);}

1.递归编译代码比较简洁,但牺牲效率。
2、无论哪种递归调用,必须有递归出口。
3、递归语句中保证完成相关操作。

变量周期

1、由编译程序在编译时给其分配存储空间,称为静态存储分配。
2、由程序在支行时自动 给其分配存储空间,称为自动存储分配。
3、由于作用域的屏蔽作用,如果函数 中有同名变量,则不能访问外部变量,为了能在函数内部访问函数外定义的变量,可使用C++中的作用域运算符::

int x=8;
int main(){int x=9;cout<<x<<endl;cout<<::x<<endl;
}

http://www.ppmy.cn/news/19691.html

相关文章

kubernetes资源对象应用类(二)

kubernetes资源对象应用类&#xff08;二&#xff09; Service 的 ClusterIP 地址 既然每个 Pod 都会被分配一个单独的 IP 地址&#xff0c;而且每个 Pod 都提供了一个独立的 Endpoint&#xff08;Pod IP containerPort&#xff09;以被客户端访问&#xff0c;那么现在多个 P…

蓝桥杯刷题014——求阶乘(二分法)

求阶乘 蓝桥杯2022省赛题目 问题描述 满足 N ! 的末尾恰好有 K 个 0 的最小的 N 是多少? 如果这样的 N 不存在输出 −1 。 输入格式 一个整数 K 。 输出格式 一个整数代表答案。 样例输入 2样例输出 10评测用例规模与约定 对于 30% 的数据, 1≤K≤10^6. 对于 100% 的数据, 1…

水面漂浮物垃圾识别检测系统 YOlOv7

水面漂浮物垃圾识别检测系统通过PythonYOLOv7网络模型&#xff0c;实现对水面漂浮物以及生活各种垃圾等全天候24小时不间断智能化检测。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得非常流行&#xff0c;主要是因为它的简单性和代码可读性。它使…

【每日一道智力题】之坤坤猜生日(面试高频)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;每日一题 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最…

ArrayList类

ArrayList类 目录ArrayList类一、构造方法摘要1.1 ArrayList()1.2 ArrayList(Collection c)1.3 ArrayList(int initialCapacity)二、 ArrayList的扩容机制&#xff1a;2.1 源码如下&#xff1a;2.2. 以上扩容机制的弊端&#xff1a;三、代码案例ArrayList类一、构造方法摘要 1…

【C语言课堂】 函数递归

欢迎来到 Claffic 的博客 &#x1f49e;&#x1f49e;&#x1f49e; 前言&#xff1a; 时隔多日&#xff0c;来还欠大家的 C 语言学习啦&#xff0c;上期讲了函数&#xff0c;其实函数中应该包括函数递归的&#xff0c;这里单独拿出来讲解的原因是函数递归属于重难知识&#xf…

8. 好客租房-WebSocket与即时通讯系统[项目必需]

本章节主要是学习WebSocket, 目标快速入门, 能够回答以下问题:WebSocket和HTTP的区别.WebSocket使用的是全双工通讯协议, 与其他类似协议有啥区别?WebSocket中的常用注解有哪些&#xff1f;通过本章节的学习, 应该可以回答上来这几个问题.8.1 WebSocket概念快速理解WebSocket …

【Linux】目录权限和默认权限

上期介绍了Linux的文件权限&#xff0c;这期我们仔细来说说Linux环境下目录权限和默认权限一、目录权限1.1 进入目录所需的权限我们在进入目录时需要什么样的权限呢&#xff1f;是r、w还是x呢&#xff1f;下面我们一起来验证一下&#xff1a;&#x1f4cb;如下我门拥有全部目录…