一、
1、函数定义:函数是一个代码接受一个或者多个参数,做一件事并返回零个或者一个的值。(函数不允许嵌套定义)
2、函数的组成:函数头(返回类型、函数名、参数表)
函数体(函数体中的大括号必须要有)
3、调用函数 :函数名(参数值);
()起到了函数调用的重要作用,即使没有参数调用时也要有()
如果有参数,需要给出对应的数量和顺序,并且这些参数会依次用来初始化函数中的参数
4、return的使用
(1)函数没有返回值时
void函数名(参数表)不能使用带值的return,但可以使用不带值的return,调用的时候不能做返回值的赋值
(2)有返回值时
必须使用带值的return
二、函数原型
1、函数头,以“;”结尾,结构成了函数的原型
2、函数原型的目的:告诉编译器这个函数长什么样
名称
参数
返回类型
三、函数的调用
(一)如果函数有参数,调用的时候必须传递给它数量、类型正确的值
1、可以给传递给函数值的表达式结果包括:字面量、变量、函数的返回值、计算的结果
(二)传值
每个函数有自己的空间,参数也位于这个独立的空间中,和其他函数没有关系
如图,x,y的值相互交换了,但是a和b的值丝毫没有影响(c语言在调用函数的时候,永远是将值传给它)
1行的swap中的ab,只是将10行的ab的值交给了17行ab,但是10行的ab和17行的ab完全没有关系,它们只是在调用的时候传了值
下面这行代码在调用函数的时候,不能让ab的值相互交换,只是传了值
(三)、形参和实参
函数参数表中的值是形式参数(参数),调用函数时给的值是实际参数(值)
四、本地变量
(1)定义:函数的每次运行,就产生了一个独立的空间,在这个空间中的变量,是函数这次运行所独有的
定义在函数内部的变量就是本地变量(参数也是本地变量)
(2)规则:1、本地变量是定义在块(大括号)内的,可以是函数的块内、也可以是语句的块内
2、程序运行进入这个块之前,其中的变量不存在,离开这个块,其中的变量就消失了
3、块外定义的变量在块内仍然有效
4、块里面定义了和块外面同名的变量则掩盖了快外面的变量
5、在同一个块里面不能定义同名的变量
6、本地变量不会背=被默认初始化
7、参数在进入函数的时候会被初始化