C语言基础学习笔记——函数

1.函数的基本概念:把一些大的或者功能相同的程序分成一个个程序块;函数是构成程序的基本单元。
使用函数的好处:函数的使用可以省去重复代码的编写;函数可以使程序更加模块化,提高程序的可读性。

2.函数的分类
①根据函数的定义方式可以分为:库函数、用户自定义函数
②根据是否有参数可以分为:有参函数、无参函数
③根据是否有返回值可以分为:有返回值函数、无返回值函数

3.函数的说明
①函数不能嵌套定义(不能在函数里定义函数);
②允许函数嵌套使用(在一个函数中调用另一个函数);
③允许递归调用(在函数中调用自己本身);
④C语言中有且只有一个main函数,系统负责调用main函数,并且从main函数开始执行;
⑤main函数可以调用其他函数,但不允许其他函数调用main函数。

4.函数的定义
一般形式:
(返回值类型说明)默认是int 函数名(参数1,参数2,参数3…)
①无参无返回值函数的定义:

void 函数名(void)   //函数头(形参为空)
{
	语句块;  //函数体
}

②有参函数的定义:

返回值类型 函数名(形参列表)
{
	语句块;
	return x;  //如果返回值类型不为空,那么必须要有返回值,并且返回值类型必须一致
}

③无返回值有参数的函数定义:

void 函数名(参数列表)
{
	语句块;
}

④有返回值无参数的函数定义:

返回值类型 函数名()
{
	语句块;
	return x;
}

例子:

void fun();              //无参无返回值的函数
void fun(int a,int b);  //带两个整型参数无返回值的函数
int fun();              //无参数返回值为整型的函数
int fun(int a);         //带一个整型参数返回值为整型的函数

5.函数定义的说明
①返回值类型,是函数返回给调用者的数据类型;
②函数名是用户定义的标识符,一般来说要符合命名规则。

6.函数的参数
形参:函数定义时用于占位的参数(定义函数时参数列表里的参数)。形参的内存只有在调用时系统才会分配,结束后系统自动释放其内存。
实参:函数被调用,在main函数里赋予的参数(调用函数时,传进去的参数)。
注:因为形参只在函数内部有效,所以无论形参如何改变,都不会影响到实参(值传递的原因);形参出现在函数定义中,并在整个函数体内都有效,当该函数结束后不能使用;实参出现在主调函数中,进入被调函数后,形参将得到实参的值。

实参和形参的特点
①实参和形参在数量上,类型上和顺序上应严格一致;
②形参变量只有在被调用时才分配内存单元,只在定义它的函数内部有效,函数结束后不能再使用(局部变量),使用后内存被释放;
③实参和形参占据不同的存储单元(分布在不同的栈区);
④函数默认采用值传递的方式,实参的值单向传给形参,所以无论形参如何改变,实参的值都不会变;
⑤实参可以是常量、变量、表达式甚至是函数,但在传递之前,必须有一个确定的值。

7.函数的调用
函数的调用形式: 函数名(实际参数列表);
C语言中允许一个函数调用另一个函数(但不能调用main函数),如果函数的定义在调用之后,需要使用函数声明进行前置声明;如果函数的定义在函数使用之前,则可以不使用函数声明。

8.函数的返回值
①返回值是函数被调用之后,被调用函数返回给主调函数的值;
如:

return;                 //在无返回值函数中使用,也可以不使用
return (常量);          //如return 100;ruturn "OK";
return (变量);          //如return a;
return (表达式);        //如return a*b;
return (计算语句);      //如return (a>b?a:b);

②返回值类型应当和函数定义时的返回值类型保持一致,如果不一致,则以函数定义时为准,自动进行类型转换。
③在函数中,允许有多个return语句,但每次调用只能有一个return语句被执行,只能有一个返回值。

9.函数递归
函数的递归调用:在一个函数中,直接或间接调用函数本身。
注:必须有一个明确的结束递归条件,否则可能造成系统卡死;函数中每次调用该函数本身时,需解决的问题必须更小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值