C语言——函数N0.7

一、函数的概念

在这里插入图片描述


二、函数间的调度关系

在这里插入图片描述

1、函数分为两类

在这里插入图片描述

#include<stdio.h>

void main(){
	int a,b,c;
	int max(int x,int y);       //调用max函数
	scanf("%d,%d",&a,&b);
	c=max(a,b);                   
	printf("最大的数为=%d\n",c);
}

int max(int x,int y){          //定义max函数
		int z;
		z = x>y ? x:y ;
		return z;
}

2、形参和实参的说明

在这里插入图片描述


三、函数的声明定义

在这里插入图片描述
在这里插入图片描述
如果函数的定义出现在main()函数之前,则可以不必要加上声明。因为编译系统已经知道了已定义函数的有关情况。


四、函数间的嵌套

在这里插入图片描述

main()—>a()—>b()—>a()—>main()。即使a里没有return也会返回。
从main()开始也从main()结束。


五、算法——递归

递归必须要有有关判断条件用来作退出语句。
递归的操作路线类似于:知识点四

#include<stdio.h>


long func(int a);
void main(){
	int a,d;
    printf("输入数字\n");
	scanf("%d",&a);

	d=func(a);
	printf("%d\n",d);

}

long func(int a){
	int b;
	if(a<0){
		printf("输入错误");
	}else if(a==0 || a==1){
		b =1; 
	}else{
		b=func(a-1)*a;	
	}
	return b;
}

六、static声明局部变量

在这里插入图片描述

#include<stdio.h>

int f(int a ){
	auto int b=0;
	static int c =3;

	b = b + 1;    // 1 , 1 , 1
	c = c + 1;    // 4 , 5 , 6

	return a+b+c; // 7 , 8 , 9
}

void main(){
	int a=2,i;

	for(i=0;i<3;i++){
		printf("%d\n",f(a));

	}
}

在这里插入图片描述


七、register变量


1、register存在的意义:
  如果有些变量使用频繁(例如在一个函数中执行10000次循环,每一次循环中都要引用某局部变量),则为存取变量的值要花费不少的时间!
在这里插入图片描述
在这里插入图片描述

八、extern声明全局变量

#include<stdio.h>

int max(int A,int B){
	int z;
	z =x>y ? x:y;
	return z;
}

void main(){
	extern A,B;    //试试去掉extern关键字
	printf("%d\n",max(A,B));

}
int A=13,B=-8;

  因为int A=13,B=-8; 写在了main的下面且编译器是从上往下读的,所以要用extern 。如果把int A=13,B=-8; 放在main之前就可以不用extern 关键字。

over!

下课!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值