874复习第五天-函数

32 篇文章 2 订阅

函数的概念

C语言源程序是由函数组成的。
所谓函数就是一段可以重复调用的,功能相对独立完整的程序段。

函数定义的角度

标准库函数

输入头文件,直接调用

用户自定义

自己编写

函数和过程两种功能

有返回值函数

被调用执行完后将向调用者返回一个执行结果,称为函数返回值

无返回值函数

不向调用者返回函数值

无参函数

函数定义、函数说明及函数调用中均不带参数
主函数和被调函数之间不进行参数传送

有参函数

带参函数
函数定义及函数说明时都有参数,称为形式参数。
在函数调用时必须给出参数,称为实际参数
在进行调用时,主调函数将把实参的值或地址传送给形参,供被调函数使用

注意

在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义
但是函数之间允许相互调用,也允许嵌套调用。

主调函数:调用者
被调函数:被调用者

递归调用:函数自己调用自己

main函数时主函数,它可以调用其他函数,而不允许被其他函数调用。
因此C语言程序的执行总是从main函数开始,完成对其他函数的调用后再返回到main函数,最后由main函数结束整个程序的执行,
一个C语言源程序必须有且只能有一个主函数Main

对函数调用之前,必须要先声明或先定义,否则编译错误。

一般将用户自定义的函数放在main函数的后面,再main的前面对所有自定义的函数进行原型声明。

函数的返回

功能是使程序控制从被调用函数返回到调用函数中,如果有返回值,同时把返回值带给调用函数。
函数中可以有多个return语句。
在无参数无返回值的函数中,return语句的形式只能是return;形式

toupper函数是标准库函数,功能是将小写字符转换成大写字符

无参数无返回值的函数

在这里插入图片描述
在这里插入图片描述

无参数有返回值的函数

缺省时,默认为int型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

带参数无返回值

函数定义

不允许对形参赋初值,但可以在函数的执行部分对形参赋值

实参列表中的实参必须与函数定义时的形参数量相同、类型相符
实参表求值顺序,因系统而定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
是这样子分析的

TC或BC下:
b=i;i++;i++;a=i=4
所以a=4,b=2;i=4

VC下:
b=i;i++;i=a;i++
所以a=3;b=2;i=4

带参数有返回值的函数

函数参数的传递方式

值传递

调用时,为形参分配内存单元,并将实参的值复制到形参中
调用结束,形参所占内存单元被释放,实参的内存单元仍保留并维持原值。
特点是:形参和实参占用不同的内存单元,函数中对形参值的改变不会改变实参的值。这就是函数参数的值单向传递规则

地址传递

#include<stdio.h>
void mergestr (char s1[],char s2[],char s3[]);
int main()
{
	char str1[]={"hello "};
	char str2[]={"china!"};
	char str3[40];
	
	mergestr(str1,str2,str3);
	printf("%s\n",str3);
	 return 0;
}
void mergestr(char s1[],char s2[],char s3[])
{
	int i,j;
	for(i=0;s1[i]!='\0';i++)
		s3[i]=s1[i];
	for(j=0;s2[j]!='\0';j++)
		s3[i+j]=s2[j];
	s3[i+j]='\0';
	return;
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

变量的存储类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数的嵌套和递归调用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

打印数字三角形

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值