导图社区 cpp的函数
函数是一系列C 语句的组合,一个函数通常完成一个特定的功能,利用函数组织程序可以简化代码以及实现代码重用。 使用函数可以使程序的逻辑更加清晰。将相对独立的功能代码写成函数,可以增加程序的可读性并有利于代码维护。
主要介绍的是电路模型与基本定理、电阻电路等效变换、电路分析方程、电路定理、含运算放大器的电路、电容、电感及动态电路、一阶电路的暂态分析和二阶电路的暂态分析几个部分。
英语口语是英语学习中不可或缺的一部分。本张思维导图整理了八个话题包供读者参考。每个话题包有三个问题、一个附加问题和一个讨论话题。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
第六章 函数
C++语言中的函数
main()相当于总调度
分类
标准库函数
自定义函数
所有函数平行定义 在一个函数内部不允许定义另外的函数
函数的声明、定义与调用
声明
函数名字
返回值的类型
形参列表
说明
形参列表每个形参都必须给出独立的类型说明
可省略形参名,但不能省数据类型
有多个形参时,用逗号隔开
返回值为void类型时无返回值,其余均有返回值
定义
返回值数据类型
没有返回值则类型为void
有返回值则为其他类型,且必须有return语句
函数名
识别函数的唯一标识符
最好见名知意
有形参
无形参为()
函数体
用{}括起来
函数体内不能定义另一个函数,但可以声明其他函数
return语句
只能返回一个值
两种格式
return 表达式;
不能用于返回类型是void的情况
return;
只能用于返回类型是void的情况
返回类型是void的时候,也可不设return,函数执行到最后一个花括号自动终止
调用
格式
有参
函数名(实参1,实参2,…)
无参
函数名()
调用方式
函数表达式
函数是有返回值的
函数语句
一般用于无返回值的情况
对于有返回值的函数,则会忽略返回值
函数实参
函数调用的结果作为另一个函数调用的实际参数出现
函数必须是有返回值的
变量的储存方和生存期
储存特性与作用域
局部变量
形参属于被调函数的局部变量
实参属于主调函数的局部变量
作用域不同
在不同函数中使用相同的变量名代表不同的对象,分配不同的单元,不会产生二义性
全局函数
作用域:从定义的位置开始,整个源程序
在局部变量的作用域中,局部优先
此时操作全局变量需要使用域运算符"::"
变量的生存期
内存
代码区
数据区
静态存储区
拥有和程序一样长的生存期
数据会一直占用内存空间直到程序结束
全局变量,静态变量
未给出初始值的数据其值为0
动态存储区(栈区)
生存期与变量的作用域一致
未声明为静态的东西
未给出初始值的数据其值为随机值
生存期与作用域的关系
变量结束了生存期也就离开了作用域
变量离开了作用域不一定结束了生存期
函数内的静态局部变量
变量
auto变量
未声明为static的均为auto变量
存储在栈区
常常省略auto
用static声明局部变量
分配在静态数据区
用extern声明全局变量
在声明点之前就想使用该全局变量
函数的参数传递
值传递
实参、形参占用不同的内存空间
形参是实参的复制品
对形参的操作不会改变实参本身
指针传递
本质上是值传递
传递的是一个地址值
可以用过形参改变实参值
需使用”*指针变量名“的形式进行计算
引用传递
形参与实参共用存储空间
内存中没有产生实参的副本,所占空间小
数组参数
形式
使用数组元素(下标变量)
使用数组名
数组元素作为函数的实参
与普通变量没有区别
数组名作为函数的参数
属于地址传递
形参数组与实参数组是同一个数组,不会额外分配空间
函数嵌套与递归调用
嵌套调用
函数不能嵌套定义,但是可以嵌套调用
在一个函数定义中出现对另一个函数的调用
递归调用
指一个函数在函数体内条用本身
特点
存在递归的终止条件
存在导致问题求解的递归方式
举例:阶乘函数
函数重载及参数默认值设置
函数重载
指在同一个作用域中,可以有一组相同函数名,不同参数列表的函数
减少函数名的数量,提高程序的可读性
注意
至少要求形参的个数、形参类型有区别
不能以形参名不同和返回值类型不同构成重载
带默认形参值的函数
实参与形参的传递从左到右
指定默认值的参数必须放在形参列表的最右端,否则出错
如果某个形参之设定了默认值,该形参右边的所有形参都必须给定默认值
函数定义在调用之前,则应在函数定义中给出默认值
函数定义在调用之后,则应在函数声明中给出默认值,定义时不能再给出默认值(相同也不可以)
多文件程序结构
多文件结构
按逻辑模块划分
头文件
实现功能的函数文件
主程序main文件
不同源文件之间共享变量声明,类型定义和函数声明
预处理功能
文件包含命令,即#include命令
常见预处理命令
#include<文件名>
#include"文件名"