函数
为什么要使用函数
-
1)“避免重复制造轮子”,提高开发效率
strcmp(str1, str2);//(库函数,实现两个数比较)
2)便于维护
-
初学者的创建错误:
-
函数很长, 常常超过100行
-
不知道怎样定义函数
-
函数的定义
-
函数的设计方法:
1)先确定函数的功能
2)确定函数的参数
是否需要参数,参数的个数,参数的类型
3)确定函数的返回值
是否需要返回值,返回值的类型
4)确定函数名
函数名, 一定要顾名思义.
5)函数名的命名方法, 和变量名相同
- 函数的实现
-
示例:
#include <iostream>
using namespace std;
//函数的定义
//实现1+2+3...+100
int sum(void) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
return sum;
}
int main(void) {
//调用函数sum
cout << sum() << endl;
return 0;
}
函数的调用和声明
-
实参和形参
函数调用时, 实参的值, 传递给形参.
即, 形参被赋值为实参.
函数声明
函数声明\函数定义\函数调用的顺序
函数的传递
-
调用函数时,形参被赋值为对应的实参,
实参本身不会受到函数的影响!
使用数组作为函数的参数
-
使用数组作为函数的参数时,函数的形参是数组,但是,其编译的时候,其实是给指针
使用数组作为形参,就可以把函数里面的东西带出来,而使用普通的形参是不能带出来的,因为是值传递
-
示例:
#include <iostream>
using namespace std;
//函数的定义
//实现1+2+3...+100
void sum(int a[]) {
for (int i = 1; i <= 100; i++) {
a[0] = a[0] + i;
}
}
int main(void) {
int a[1] = { 0 };
//调用函数sum
sum(a);
//把sum函数计算结果带到main函数来了
cout << a[0] << endl;
return 0;
}
函数的默认参数
//每个成绩加5分
// 默认参数, 只能出现在参数列表的最后, 即默认参数后面, 不能有普通参数
void add(int score[], int n, int val=5) {
for (int i=0; i<n; i++) {
score[i] += val;
}
}