7.1 函数的基本知识
函数的使用:
使用函数需完成:
- 函数定义(function definition)
- 函数原型(function prototype)
- 函数调用(function call)
库函数:已定义和编译好的函数,使用标准库头文件提供其原型
#include<iostream>
using namespace std;
void simple(); //函数原型
void main(){
cout << "main function" << endl;
simple(); //函数调用
}
//函数定义
void simple(){
cout << "Simple function"<<endl;
return;
}
函数定义
- 无返回值函数:void函数
- 有返回值函数
void函数:
void func(parameterList)
{
statement(s)
return;
}
有返回值函数
typeName func(parameterList)
{
statement
return value;
}
- 返回值将返回给调用函数,值本身可以是常量、变量。也可以是表达式,只是其结果的类型必须是或可以转换为typeName(如返回值类型为double, int可被强制转换为double)
- C++函数返回值不能是数组,但可以是指针、结构和对象
- 若函数包含多条返回语句,则在执行中遇到第一条返回语句后便结束,常用于if else语句中
if(a > b)
return a;
else
return b;
函数原型
原型常隐藏在include头文件中
为什么需要原型
原型描述了函数到编译器的接口,其将函数返回值的类型以及参数的类型与数量告诉编译器。
原型的语法
函数头加分号,其中参数列表可以不包含变量名,如:
void cheers(int, double);
原型的作用
降低程序出错的风险,编译器可正确处理函数返回值,会检查使用的参数数目是否正确,参数类型是否正确
7.2 函数参数和按值传递
void cube(double x);
int main(){
double side = 5;
cube(side);
}
cube函数被调用的过程中,将创建一个新的名为x的double变量, 并将其初始化为5. 该函数使用的并不是side变量, 因此不会影响main()中的数据.
- 形参/参量(parameter):用于接收传递值的变量, 如本例中的x变量
- 实参/参数(argument):用于传递给函数的值 , 如本例中的5 (? 按原文理解应为5)
- 局部变量 函数中声明的变量(包括形参) 为函数私有,函数被调用时,将为这些变量分配内存,函数结束时, 这些内存将被释放, 这样的变量称为局部变量
7.3 函数和数组
在C++中, 数组名被视为指针.解释为其第一个元素的地址.
arr == &arr[0]
但有一些例外: 1.对数组名使用sizeof将得到整个数组的长度 2.将地址运算符&作用于数组名,将返回整个数组的地址