第3章 函数-【千锋教育】C语言程序设计(微课)
2023-03-21
|
37页
|
130人阅读
|
0人下载
教辅
内容正文:
第3章 函数
函数的定义与声明
有参函数
形式参数与实际参数
函数的返回值
printf函数与scanf函数
putchar函数与getchar函数
变量的作用域
C语言程序设计
1
函数的定义与声明
有参函数
形式参数与实际参数
函数的返回值
printf函数与scanf函数
putchar函数与getchar函数
变量的作用域
01
02
04
05
03
06
07
目 录
CATALOUGUE
初心至善 匠心育人
掌握形参与实参、全局变量与局部变量
了解输入与输出函数
理解带参函数、函数返回值
熟悉作用域、函数的声明与定义
学 习 目 标
LEARNING OBJECTIVES
初心至善 匠心育人
3.1
函数的定义与声明
3.1.1
函数的定义
3.1.2
函数的声明
初心至善 匠心育人
void表示该函数没有返回值,remember是为函数取的名字,remember后面有一对小括号,小括号中代表函数的参数,假如没有参数,小括号内为空。函数的主体从左大括号开始,到右大括号结束,中间是函数的功能,该函数实现输出“拼搏到无能为力,坚持到感动自己!”。
函数也称为方法,是指实现某项功能的代码块。例如,要实现输出一行文字的功能,可自定义一个函数来实现,示例代码如下:
3.1.1 函数的定义
3.1 函数的定义与声明
初心至善 匠心育人
这就是调用函数,程序执行到这里,就会立即跳转到remember函数的定义部分去执行(定义部分就是实现函数功能的部分),当函数执行完毕后,再跳回到原始位置继续往下执行。这个过程就好比在学习疲惫时,突然想起老师对自己说的话,心中又充满了力量。
remember这个函数不是C函数库中的函数,而是自己写的,也叫自定义函数,它的名字是remember,如要用到这个函数的时候就可以写:
3.1.1 函数的定义
3.1 函数的定义与声明
初心至善 匠心育人
第9行:调用say函数。main函数暂停执行,而转去执行say函数,因此程序跳转到第2 行去执行say函数,执行的结果是输出了“接电话”。
第10行:show函数执行完毕后,继续执行main函数,输出“main函数结束”。
3.1.1 函数的定义
3.1 函数的定义与声明
初心至善 匠心育人
3.1.1节中,自定义的函数是放在主调函数的前面,有读者可能会提出是否可以把自定义函数放到主调函数的后面,接下来通过一个案例来演示这种情形,具体如例3-2所示。
3.1.2 函数的声明
3.1 函数的定义与声明
初心至善 匠心育人
该程序在编译时不通过,将output函数放在main函数的后面定义,结果导致main函数不知道有output这个函数,因此在main函救中调用output函数失败(第4行)。解决办法就是在main函数的前面声明output函数,修改例3-2代码,具体如例3-3所示。
3.1.2 函数的声明
策2行:声明了一个output函数,这样编译器就知道会有一个output函数存在。需要注意的是,函数声明仅仅包括函数定义的头部,不包括后面的大括号与函数体。函数声明需要用一个英文分号作为结尾。
第5行:调用output函数,因为前面已经声明了output函数,所以成功调用。
第8~11行:output函数的定义。
3.1 函数的定义与声明
初心至善 匠心育人
9
圆括号里面不再为空,而是多了两个参数x和y,参数之间用逗号隔开,这里参数的类型为int,表示x和y是用来保存整数的,因此,可以在调用add函数时传递两个整数:
当调用add函数时,23会传递给x,由x来保存,11会传递给y,由y来保存。这里需要注意的是,add函数在调用之前,x和y是不存在的,只有在调用add函数,并为x和y传递了23和11时,系统才会为x和y分配内存,而一旦调用结束,系统又会立即释放x和y所占的内存,所以x和y不是实际存在的参数,而是形式上存在的参数,又叫形式参数,
假如要写一个执行相加运算的函数,那么就需要给函数添加两个参数,如:
3.2 有参函数
初心至善 匠心育人
第9行:调用add函数,并传递两个整数——23和11,这样会暂时终止main函数的执行,转去执行add函数,程序跳到第2行,将23和11传递给形式参数x和y,x保存23,y保存11,第4行执行x+y,结果为34,return返回这个结果并终止add函数。add函数执行完毕后,会继续执行main函数,因此程序又回到第9行,开始执行赋值运算符,将函数的返回值34赋给左侧的变量sum。
第2~5行:定义了一个add函数,该函数有两个类型为int的形式参数x和y,即add函数可以接收两个整数,函数的功能是对接收的两个整数做加法运算,并返回运算结果(第4行))。
3.2 有参函数
初心至善 匠心育人
形式
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。