C笔记——函数

本文详细介绍了C语言中函数的定义、调用、返回值处理,以及形参与实参的概念。函数定义包括返回值类型、函数名和参数表,调用时需注意参数的数量和顺序。递归函数是函数在其体内调用自身的一种特殊形式。此外,还阐述了函数执行的先后顺序、形参和实参的单向数据传递以及局部变量和全局变量的区别。
摘要由CSDN通过智能技术生成

目录

1.函数定义

2.调用函数

3.从函数中返回值

4.函数先后顺序

5.形参和实参

传值

形参

实参

6.局部变量和全局变量


1.函数定义

形式如下:

函数头:返回值类型 函数名(参数表)

        {

函数体:声明部分

              语句

        }

2.调用函数

函数名(参数值);

注意:不论有没有参数,()必须存在,表示起到函数调用的作用。如果有参数,则需要给出正确的数量和顺序。

C语言中作嵌套的函数定义,但允许在一个函数的定义中出现对另一个函数的调用,即嵌套调用

•递归调用:一个函数在他的函数体内调用它自身,这种函数称为递归函数;

例:用递归法算n!

long func(int n)
{
    long f=-1;
    if(n<0)printf("n<0,input error");//提示n输入错误
    else if(n==0||n==1)f=1;//判断是否为结束条件
    else f=func(n-1)*n;//求n!递归方式,返回其值
    return(f);
}
int main(void)
{
    int n;
    long y;
    printf("\ninput a integer number:\n");
    scanf("%d",&n);
    y=func(n);//调用求n的阶乘函数
    printf("%d!=%ld",n,y);
}

3.从函数中返回值

return停止函数的执行,并返回一个值,这个值可以赋值给变量,可以在传递给函数,也可以丢掉

return;

return 表达式;

 • 若做一个没有返回值的函数,函数名前的类型要写成void,表明这个函数不返回任何的结果,就不能使用带值的return;也可以没有return,调用的时候不能做返回值的赋值。

• 若有返回值,return后必须带值。

4.函数先后顺序

执行前一定要先声明函数,即函数原型。其构成为

函数头; 

一般把它写在调用它的函数前面。

5.形参和实参

传值

每个函数都有自己的变量空间,参数也位于这个独立的空间中,和其它函数没有关系。在这个空间里的变量,是函数这次运行所独有的,称作本地变量(局部变量),参数也是本地变量。

函数的参数分为形参和实参,

形参

没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。只在函数内部有效,调用结束后返回主调函数即不能再使用;

实参

函数被调用时给出的参数有确定的值,会被函数内部的代码使用,所以称为实际参数,简称实参。其出现在主调函数中;

:函数调用中发生的数据传送是单向的,即只能把实参的值传送给形参。因此在函数调用过程中,形参的值会发生变化,而实参的值不会改变。

6.局部变量和全局变量

变量的生存期和作用域

• 生存期:变量出现到它消亡的时间段;

 作用域:在代码内可以访问这个变量(起作用)的范围;

局部变量:(内部变量),在函数内做定义说明的,其作用域仅限于函数内

全局变量:(外部变量),在函数外部定义的变量,作用域是整个源程序。使用前应作声明,位置可在函数前/后、文件前/后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值