函数
函数定义
- 一个函数由函数名,参数,返回值类型和主体构成
- 在函数头中定义的变量被称为形式参数
- 被传递的值称为实际参数
- 函数名和参数列表一起构成了函数签名
- 参数是可选的
函数调用
- 调用一个函数就是执行函数中的代码
- 函数必须在调用之前声明
- 每当一个函数被调用时,系统都会创建一个活动记录,来存储其参数和变量并将活动记录放置到一个叫做调用栈的内存区域。调用栈也被称为执行栈
- 栈中的元素存取按后进先出的方式。
无返回值函数
以传值方式传递参数
- 当调用一个函数时,必须提供参数,其顺序必须与函数签名中的顺序一致,这就是所谓的参数顺序关联
函数重载
- 可以使用同样的名字命名函数,只要函数的签名不同
- 两个函数有相同的名称,但是不同的参数列表。
函数原型
- 一个函数原型,就是一个没有函数实现的单纯的函数声明,函数的实现可以在稍后的程序中给出
缺省函数
- 如果函数调用中未给出参数,那么参数的缺省值将被传递给函数
- 在函数参数中,有的设置参数,有的没有,那么带缺省值的参数应该放在参数列表的末尾。
- 当调用一个函数时,如果一个参数未给出,那么在它之后的所有参数也不能给给出。
内联函数
- 可避免函数调用的开销
- 内联函数是不会调用的
- 在函数声明前加上关键值inline即可
- 可提升段函数的性能,但并不适合在程序中多次被调用的长函数,会急剧增加可执行代码的长度。
静态局部变量
- 当一个函数结束执行后,其所有局部变量都会被销毁,这些变量也称为自动变量
- 在程序的整个生命周期中,静待局部变量会一直驻留在内存中
- 静态局部变量的声明使用关键字static
- 静态局部变量的初始化只在第一次调用时发生一次
以引用方式传递参数
- 引用变量访问和修改存储在变量中的原数据
- 一个引用变量实质上是另一个变量的一个别名,任何对引用变量的改变实际上都会作用到原变量中,因为它们共享内存。
- 声明:
int &r= count;
Swap函数
void swap(int& n1, int& n2)
{
int temp = n1;
n1 = n2;
n2 = temp;
}
- 形参和实参的类型必须是相同的
- 实际参数必须是一个变量
常量引用参数
- 关键字const
- 在值传递中,实际参数和形式参数是独立的变量,在引用传递中,实际参数和形式参数是同一个变量