本文转载自:VC驿站
https://www.cctry.com/thread-287032-1-1.html
1、什么是函数?
咱们先看看函数的原英文意思,function,翻译过来就是功能的意思,所以函数也就是功能。也就是说一个函数肯定会实现或者完成某个功能,所以大家以后对函数起名字的时候最好起一个能表达该函数功能的名字。所以一个程序可能会包含多个函数来实现多个功能。编写程序的过程也可以简单理解为写N多个函数的过程。
2、为什么要有函数?
①、每个程序都必须至少有一个函数,咱们之前的 HelloWorld 程序就有一个主入口函数 main 对吧?大家也都看到了。
②、我们之前的代码相对来说比较简单,所以都写在了 main 函数中,如果程序的功能以后越来越多,那么就不可能把所有的代码都写到main函数中,这时候就可以按照功能来写一个一个的函数了,之后调用。
③、如果程序的功能很多,比如在公司的项目中,由多个人来共同完成一个项目,那么就可以把这个项目拆分开,每个人负责几个功能函数,写好了之后再组合到一块,方便协同开发。
等等吧,可能还有很多其他的原因。总之函数在编程开发的过程中是一定要学会的,不仅 C/C++ 语言中有,其他各种各样的语言中几乎都有函数,也都需要开发人员去编写函数。
3、函数的分类:系统函数、用户自己定义的函数
系统函数是编译器提供好的C/C++的标准库函数,例如:printf、malloc、free、sqrt 等等。
用户自己定义的函数是指在实际的软件开发过程中,用户根据自己的情况,将部分功能封装成一个函数,供其他地方调用。
4、定义函数的形式:
返回类型 函数名(形式参数表列)
{
声明部分;
执行语句;
}
例如:
void print_msg() //没有参数,没有返回值
{
cout<<"hello world." << endl;
}
int add(int x, int y) //有两个参数,有返回值
{
return x+y;
}
5、函数的简单调用:
#include <iostream>
using namespace std;
int add(int x, int y)
{
return x + y;
}
int main()
{
int sum = add(2,5);
cout << "sum = " << sum << endl;
return 0;
}
6、形参与实参:
在上面的例子中 add 函数的参数 int x, int y 就是形式参数,简称形参,又叫虚拟参数,因为函数调用之前他们并没有申请任何内存;
而在调用 add 函数的实际参数 2 和 5 就是实际参数;
形参大家可以理解为是一个模具,你给我传什么我就用什么。实参可以理解为往模具里面添加的真实东西;
实参可以是常量、变量,也可以表达式,例如:
int a = 5, b = 6;
int sum = add(2, a*b);
注意①:调用函数时实参应尽量与形参的类型一致,或可进行相应的转化,如果转化不了则编译器就会报错!
例如:
int sum = add(2.5, 3.62); //是可以的
char c = 2;
int sum = add(2.2, c); //也是可以的
int sum = add(2.2, "abc"); //不可以
编译器没办法把字符串 "abc" 转成数值类型的整型!
注意②:实参对形参的数据传递是以“值传递”的方式进行传递的。单向的,只能由实参传递给形参,不能由形参传递给形参。
举个例子:
#include <iostream>
using namespace std;
int add(int x, int y)
{
x = 3;
y = 8;
return x + y;
}
int main()
{
int a = 2, b = 5;
int sum = add(a, b);
cout << "sum = " << sum << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
return 0;
}
相关细节分析详见视频教程讲解!
第16课视频教程下载地址: