当涉及自己的想法时我会用【】括起来
【每一个函数都可以看做是一个功能模块的集合,有它自己独特的功能,相当于是把一种方法封装在了一个“语句块”里面,当要使用时就“拿出来用”(使用函数调用语句,后续会讲)】
目录
C++函数的概念与定义
1.函数的概念
函数由一组封装在一起的功能语句所组成,是组成源程序的基本模块【也是面向过程编程的重要组成】。用户调用函数时,只需要传给函数相应的参数,函数内部就可以自动执行相应的操作。【对传入的参数进行一系列处理并做出指定反馈或返回值】
c++函数可以分为库函数和用户自定义函数。库函数在c++系统里面已经有了,所以我们只要在程序编译预处理部分包含相应的文件头就可以直接使用↓
//例如数学库
#include<cmath>
用户自定义函数 如字面意思就是我们自己定义的函数,一般要先定义后使用,如果要先使用就要使用函数声明语句(后面有讲到)
2.函数的定义
组成部分:函数头部(函数类型、函数名称、函数形参)+函数体
基本格式:
/*
函数类型 函数名(形参列表)
{
语句1;
语句2;
...
...
}
*/
//例如:↓
int add(int a,int b)
{
return a+b;
}
函数类型指明函数返回值类型(如上面例子中类型是int,所以返回整形的函数值);函数名是我们给函数起的名字(要符合自定义标识符的命名规则);参数类表用于“收集”外界传进来的数据;函数体内则是具体对数据进行处理的方法,也就是函数功能的具体实现。
接下来来具体看一下函数头:括号内的参数被称作‘形式参数’,简称‘形参’。一个函数可以没有形参,也可以只有一个形参,也可以有多个,多个形参之间使用逗号隔开【这点要和条件判断语句区分好,条件判断语句用的是分号】,形参的格式包含数据类型与变量名【跟变量的定义一样】。当没有形参时,括号内可写一个void 也可以直接不写。依据有无参数可将函数分为有参函数与无参函数。
//无参数
int add()
{
cout<<"这是一个用户自定义函数"<<endl;
}
//或
int add(void)
{
cout<<"这是一个用户自定义函数"<<endl;
}
//只有一个参数
int add(int a)
{
cout<<a+1<<endl;
}
//有多个参数
int add(int a,int b,int c)
{
cout<<a+b+c<<endl;
}
3.函数的类型与其返回值
c++函数的函数类型可以是任意合法的数据类型,如果不指名数据类型那么默认是整形(int),函数调用结束后返回一个整数值。
3.1函数类型
按照是否有返回值分为有值型函数和无值型函数,无值型函数的函数类型是void,特征是函数内部进行一系列操作但不返回值【调用的结果没有值,只是执行了一些操作】,void类型以外的所有函数都是有值型函数,函数调用完会返回一个值。
3.2 return
return用于返回函数的运行结果,执行到返回语句后,结束函数的调用,并将return后面的表达式的值(或直接是 一个确定的值 返回给 函数调用语句本身)
有值型函数必须要有return语句,并且return之后必须有一个值或一个表达式;无值型函数可以有return语句也可以没有return语句,有return语句的时候仅仅是起到一个结束标志的作用 且进制在return后面有值或表达式。【return语句的有无只与函数类型有关,与函数是否有形参无关】
return后面跟的数据类型应该与函数类型保持一致,如果不一致,会将return后面的数据类型强转化为 与函数类型相同的数据类型。
int a()
{
return 5.5
}
//由于函数类型是int,所以函数调用结束后返回的是5而不是5.5