考研C语言第七章

7.2函数的声明定义,函数的分类和调用

1、函数声明要在main函数上面,这样main函数才可以进行调用
在这里插入图片描述
第一节课主要就学了函数的调用,项目在开发的时候分工用的比较多
主要结构:
在这里插入图片描述
func.c里面进行函数的定义
在这里插入图片描述
不是很重要,进行了函数的的声明,调用了需要的类库
在这里插入图片描述
使用其他文件里面定义的函数
在这里插入图片描述

7.3函数的递归调用

自己调用自己,计算阶乘

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int func(int n)
{
    if(n==1)
    {
        return 1;
    }
    return n*func(n-1);
}

int main() {
    int n;
    scanf("%d",&n);
    printf("f(%d)=%d\n",n,func(n));

}

在这里插入图片描述
一开始输入的是3,正常走进函数体里面,当走到最后一句return时,需要再次走进自己的函数体里面,此时走进去的是3-1=2,2再走走到最后有需要f(1),又走了一遍,当1进去之后,不需要再走函数体了,而是返回1,就沿着上面的路走回需要自己数据的地方去。

小练习:
上台阶,一次上一层或者两层
在这里插入图片描述
step(n)=step(n-1)+step(n-2)
到达n这一层的方式只有这两个

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int step(int n)
{
    if(n==1||n==2)
    {
        //当台阶数是1时,有一种,台阶数为2时有1,1,和2两种
        return n;
    }
    return step(n-1)+step(n-2);

}
//上台阶,到第n台阶有多少种走法
int main() {
    int n;
    scanf("%d",&n);
    printf("step(%d)=%d\n",n,step(n));

}

对我自己有一个很难想清楚的点是:
总感觉需要一个count进行计数
在这里插入图片描述

7.4局部变量和全局变量

在这里插入图片描述

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int i=10;//全局变量

void print(int i)
{
    printf("I am print i=%d\n",i);
}

int main() {
    printf("main i=%d\n",i);
    i=5;
    print(5);
    return 0;
}

不建议使用全局变量,全局变量在数据段,一直存在,加入定义的局部变量与全局变量名字还一样,就使用就近原则进行调用,容易造成混乱
在这里插入图片描述
可以看到这里j是报错的
原因:局部变量只在离他最近的大括号内有效!!!
(我也一直以为是在所在函数体里面有效)

在这里插入图片描述
当在for循环的括号里面定义并且使用了一个变量,在离开这个括号里面使用这个变量是不行的(用于某些题可能返回循环次数,但是一般用count进行计数)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值