C++程序设计基础(三)---函数

第三章 函数
3.1 函数的定义与使用
1、函数的定义
语法形式:
在这里插入图片描述
形式参数
形式参数表的内容如下所示:
type1 name1, type2 name2,…,typen,namen
type为类型标识符,表示形参的类型,name表示形参名。形参的作用是实现主调函数与被调函数之间的联系。通常将函数所处理的数据、影响函数功能的因素或者函数处理的结果作为形参。
return可以返回该函数的值,即可以结束该函数的计算的执行
2、函数的调用
函数在调用之前需要进行声明。函数的定义就是函数的声明。因此在定义函数之后就可以直接调用该函数。但是如果想要在定义函数之前调用它,则需要在调用函数之前添加该函数的函数原型声明,其形式如下:
在这里插入图片描述
标准c++的系统函数
double fabs(double a)绝对值函数
double sqrt(double x)平方根函数
int rand(void)产生伪随机数的函数,但是他需要不同的种子,才可以生成元素不同的随机序列,此时需要void srand(unsigned int seed)为其设置种子

3、函数的嵌套调用
在这里插入图片描述
输入两个整数,求其平方和
4、函数的递归调用
函数可以直接或间接的调用自身,称为递归调用
在这里插入图片描述
在这里插入图片描述
5、函数的参数传递
形参与实参的结合
形参的改变对实参不起作用
引用传递:使用一个中间量来进行数据的传递
3.2内联函数
使用函数可以提高开发效率增强程序的维护性,但是函数调用也会降低程序的执行效率,增加时间和空间的开销。因此对于一些功能简单、规模较小又使用频繁的函数,可以设计为内联函数。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。这样就节省了参数传递、控制转移等开销。
内联函数的定义与普通函数的定义方式几乎一样,只是需要使用关键字inline,其语法形式如下:
在这里插入图片描述
当然,inline只是一个要求,并不意味着内联函数必须要添加inline。通常内联函数应该是比较简单的函数,结构简单、语句少。
在这里插入图片描述
3.3带默认形参值的函数
函数在定义是可以预先声明默认的形参值。调用时如果给出实参,则用实参初始化形参,如果没有给出实参,则采用预先声明的默认形参值。例如:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.4函数重载
在这里插入图片描述
在这里插入图片描述
3.5C++系统函数
例如三角函数,其函数的说明均在头文件cmath中
系统函数分为两类:标准C++的函数,非标准的C++函数。例如cmath中所声明的sin,cos,tan,函数都是标准C++的函数
该部分的知识推荐的学习网站:http://www.cppreference.com
3.6 深度探索
1、运行栈与函数调用的执行
(1)运行栈的工作原理
C++变量在运行时依靠低值加以区分,其中所列举的示例程序中,变量的定义全部卸载函数以外,这样的变量叫做全局变量,变量的定义都放在一个函数之中,这样的变量叫做局部变量。

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
2、函数调用的执行过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
函数声明与类型安全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值