-
函数的概况:c语言由函数组成。函数是相对独立的模块
-
函数的分类:
-
从函数的定义的角度看,函数可分为库函数和用户定义函数两种
库函数:由c系统提供,用户无需定义,只需在程序前包含有该函数的原型的头文件即可在程序中直接使用
自定义函数:由用户按需要写的函数
-
语言的函数兼有其他语言中的函数和过程两种功能,从这个角度看,又可以把函数分为有返回值函数和无返回值函数(void 空函数)。
-
从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。
无参函数:函数定义、函数说明及函数调用中均不带参数
有参函数:也成带参函数。在函数定义及函数说明时都有参数,成为形式参数。
-
自定义函数的书写格式:分为三步:声明、义函数、调用函数:
函数的基本格式:
返回值类型 函数名称(函数参数)
{函数体;}
-
无参无返回值函数定义:
一般形式如下:
Void 函数名()
{
声明部分;//定义局部变量
语句
}
Void pirnt-line()
{
Printf(“—”);
}
-
无参有返回值函数定义:
返回值类型 函数名()
{
声明部分
语句
Return 返回值类型变量或常量; //返回给主调函数
}
返回值类型和函数名称称为函数头。
在很多情况下都不需要无参函数有返回值,此时可用void
如果有返回值,在函数体中必须有return语句;
-
有参无返回值函数定义:
Void 函数名(形式参数表列){
声明部分
语句
}
形式参数表列表的格式:类型变量名,类型 变量名2,。。。。。
-
有参有返回值函数定义:
一般形式如下:
返回值类型 函数名(形式参数表列){
声明部分
语句
Return返回值类型变量或常量;
}
在进行函数调用时,主调函数将赋予这些形式参数实际的值,形参既然是变量,必须在形参表中给出形参的类型说明。
注意:定义函数时注意函数名不能重复
-
函数的参数:
Int max(int a,int b){} // a b为形参
Int main()
{max(23,80;)}//23,80为实参
-
形式参数:在函数的定义中,函数名后面小括号中的参数
-
形参定以后,并不会立即分配存储空间。在函数调用的时候,才会真正的分配存储空间
-
如果有多个形参,可以用逗号分隔
-
形参的类型可以不相同
-
在函数中不能定义和形参同名的变量中
-
实际参数:在函数调用的时候,小括号中的参数。可以是变量,也可以是常量或表达式
主调函数:void test1(){}
Void test2(){test1();}
Test2是主调函数,test1是被调函数
实参出现在主调函数中,进入被调函数后,实参变量也不能使用、形参和实参的功能是作数值的传递。发生函数调用时,主调函数把实参的值传送给被调函数的形参,从而实现主调函数向被调函数的数据传递。
-
实参和形参的值之间的传递过程
-
调用函数的时候,实参的值是一个已经确定的值
-
实参和形参的个数、类型要一致。如果类型不一致,会造成精度丢失
-
把实参的值,赋值给形参
-
形参的值在形参内部可以被修改,但是不会影响主调函数中实参的数据
-
函数的返回值及注意事项
-
函数的返回值:函数的值(或函数返回值)是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值
-
注意事项:A .函数返回值,用到一个关键字 return
B .return常量:return 0;
return表达式:return a=5;
C .return(常量/变量/表达式);加不加括号一样
D. 如果return的值和函数定义的类型不一致,以函数的返回值类型为准
E. 如果是整型,可以省略int。(但是一般不推荐省略)
10. 函数的声明:告诉编译器这个函数已经存在了,告诉编译器被调函数的返回值类型,以便在主调函数中处理被调函数返回的数据。
一般类型:返回值类型 函数名(形参类型 形参1,。。。。)
函数声明格式:把被调函数的头部拷贝一份加上一个分号;
函数使用流程:先声明----定义----调用。
注意事项:
-
如果被调函数的返回值是int类型,此时可以不用声明
-
如果被调函数写在主调函数之前,可以不用声明
11.函数调用的注意事项:
-
函数表达式:m=max(34,34)+10;
-
函数调用作为另外一个函数的实参:m=sum(max(56,456),3545);
-
函数的嵌套调用:m=sum(max(56,456),3545);
-
函数名不能喝变量名相同
12.递归函数(不推荐使用,耗内存):在一个函数在函数体内调用它自身称为递归调用。主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。为了防止递归调用无休止循环,加入判断语句。
注意事项:
-
主调函数就是被调函数
-
在递归函数中应该存在能够让递归结束的条件
递归的阶段:
-
递推阶段
-
回归迭代阶段:
递归函数的构成条件:
-
存在自己调用自己
-
存在一个条件,能够让递归结束,否则是死循环
-
能够找到一个规律,让要解决问题的规模缩小
560



被折叠的 条评论
为什么被折叠?



