一、知识点
1.函数的数据类型时函数的返回值类型(若数据类型为void,则无返回值)。
2.函数名时标识符,一个程序中除了主函数名必须为main外,其余函数的名字按照标识符的取名规则可以任意选取,最好取有助于记忆的名字。
3.形式参数(形参)表可以是空的(即无参函数),也可以有多个形参,形参间用逗号隔开,不管有无参数,函数名后的圆括号都必须有。形参必须有类型说明,形参可以是变量名、数组名或指针名,它的作用是实现主调函数与被调函数之间的关系。
4.函数中最外层一对花括号“{}”括起来的若干个说明语句和执行语句组成了一个函数的函数体。由函数体内的语句决定该函数的功能。函数体实际上是一个复合语句,它可以没有任何数据类型,而只有语句,也可以两者都没有,即空函数。
5.函数不允许嵌套定义。在一个函数内定义另一个函数是非法的,但是允许嵌套使用。
6.函数的传递方式
分为三种:传数值、传地址、传引用。
1)传数值
传递过程:
首先计算出实参表达式的值;接着给对应的形参变量分配一个存储空间;然后把以求出的实参表达式的值存入到形参变量分配的存储空间中,成为形参变量的初值,供被调用函数执行时使用。
2)传地址
如果在函数定义时,将形参说明成指针,调用函数时,就需要确定指定地址值形式的实参。
3)传引用
在函数定义时,在形参前面加上
引用运算符“&”
。
二、相关题型
用冒泡法对数组元素按由小到大排序。(数组作为函数参数)
#include<iostream>
using namespace std;
void bubble(int[],int);
int main()
{
int array[10]={11,4,55,6,77,8,9,0,7,1};
cout<<"排序前";
for(int i=0;i<10;i++)
cout<<array[i]<<',';
cout<<endl;;
bubble(array,10);
cout<<"排序后";
for(int i=0;i<10;i++)
cout<<array[i]<<',';
cout<<endl;
return 0;
}
void bubble(int a[],int n)
{
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
三、函数学习心得体会
1.函数在一些简单的题目中使用会显得有些麻烦,但是在那些比较繁琐的题目中使用起来将会非常便捷,尤其是需要反复使用某一段代码,这时候函数的作用就相当明显了。
2.其实使用函数就是使用子函数,将问题分解开来,一步步进行分解计算,将问题简单化。