09-函数

本文目录

  • 什么是函数
  • 函数的定义
  • 函数调用
  • 函数的参数
  • 函数的返回值
  • 定义函数的步骤
  • 函数的注意点
  • 函数的补充
  • 习题
  • 函数的声明
  • .h文件和.c文件的分工
  • #include

  回到顶部

一、 什么是函数

1> 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。

2> 比如你用C语言编写了一个MP3播放器程序,那么它的程序结构如下图所示:

回到顶部

二、 函数的定义

1. 定义函数的目的

将一个常用的功能封装起来,方便以后调用

2. 定义函数的步骤

1> 函数名:函数叫什么名字

2> 函数体:函数是干啥的,里面包含了什么代码

3. 格式

固定格式(很多语言的函数都是这么写的)

返回值类型  函数名(形式参数列表)

{

函数体

}

举例

定义一个函数,计算两个整数的和

sum(int a, int b)

{

int c = a + b;

}

回到顶部

三、 函数调用

1> sum(10, 11); 引出返回值

2> 说明函数的调用过程

3> 简述return的作用

回到顶部

四、 函数的参数

  1. 形参和实参的基本概念
  2. 形参个数和实参一致:sum(10, 11, 12)
  3. 参数的传递是值传递
  4. 参数名不能跟函数内的局部变量同名
  5. 函数可以没有参数:设计一个函数返回PI

回到顶部

五、 函数的返回值

  1. 返回值的基本概念、return的作用
  2. void
  3. return

1) void可以省略return

2) 可以多次使用return

3) return后面不能有其他语句

  1. 函数的弱语法

1) 如果没有写返回值类型,默认是int

2) 如果写了返回值,可以不返回

3) 调用一个没有定义过的函数

回到顶部

六、 定义函数的步骤

  1. 明确函数作用,起一个有意义的函数名称
  2. 明确函数的参数和返回值
  3. 举例:

1) 求两个整数的和

2) 打印一条横线

3) 打印N条横线

回到顶部

七、 函数注意

1> 不能嵌套定义函数

2> 死循环调用,自己调用自己

3> 不能重复定义、可以重复声明

回到顶部

八、 函数的补充

1. main函数

返回值:0,正常退出;1,异常退出

2. printf函数

1> #include

2> 返回值:字符串的长度

回到顶部

九、 习题

  1. 编写一个函数double avr(int a, int b),计算a和b的平均值
  2. 编写一个函数int pows(int base, int n)返回base的n次方
  3. 编写一个函数int pieAdd(int n),计算1+2+3+……+n的值并返回。比如pieAdd(3)的返回值是1+2+3=6

回到顶部

十、 函数的声明

  1. 函数的定义顺序
  2. 函数的声明作用:声明和定义,类似于身份证和人的关系,编译买机票、链接登机
  3. 只有函数声明、没有定义,编译警告、链接报错

回到顶部

十一、 .h文件和.c文件的分工

  1. 单文件的坏处

1) 一个文件的内容太多,不利于阅读、调试

2) 多人修改同一个文件出问题

3) 公司里面是团队合作

  1. 将sum函数抽取到另一个.c文件中

1) 先直接调用sum函数,编译警告、链接main.c错误

2) #include “sum.c” , 编译链接main.c,运行成功(画图分析.o文件中的东西)

3) 如果avr.c中使用sum.c,编译链接main.c,运行程序(画图分析出错原因)

  1. 在其他文件中声明sum函数

1) int sum(int,int);

2) 编译链接main.c

3) 编译链接sum.c

4) 编译链接main.c  sum.c,运行成功

5) avr.c利用一样的方法

  1. 将int sum(int,int)抽取到另外一个文件中

1) 不抽取声明的坏处:增加新的函数了

2) 抽取到.c文件中?开发工具会将所有的.c进行编译链接

3) 抽取到.h文件中

  1. 抽取步骤总结

1) .c文件写函数的定义

2) .h文件写函数的声明

3) 要想用我的函数,请包含我的.h文件

4) 好处分析

回到顶部

十二、 #include

1. 预处理指令简介

2. #include的作用

纯粹是文件拷贝

3. #include <stdio.h>

1> stdio.h中有什么?链接的时候做了什么事情

2> <>和””的区别

4. #include的路径问题

默认是同路径,其他问题以后再讨论

09-函数

时间: 2024-08-02 11:23:07

09-函数的相关文章

09 函数初识

1. 什什么是函数2. 函数定义, 函数名, 函数体以及函数的调?用3. 函数的返回值4. 函数的参数 一. 函数的定义, 函数名, 函数体以及函数的调?用 函数: 对代码块和功能的封装和定义 我们使?用def关键字来定义函数, 函数的定义语法: def 函数名(): 函数体 函数名() 这?里里的函数名的命名规则和使?用和变量量基本一样 函数体: 就是函数被执?行行之后要执?行行的代码 函数定义完行行. 会发现什什么都没有发?生. 因为只定义了了?一个函数. 但 是还没有执?行行过这个函数.

2019 08 09 函数扩展

可变长参数 可变长参数:指的是在调用函数时,传入的参数个数可以不固定 调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参(*)与关键字实参(**) 一.可变长形参之* 形参中的会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给后的参数.需要注意的是:*后的参数名约定俗成为args. def sum_self(*args): res = 0 for num in args: res += num retur

C#总结2-2

第四章程序流程 4.01流程图 1流程图:使用标准化的图性方案,分析某个功能的实习步骤. 2.根据功能画出流程图,根据流程图实现代码的编写.将功能分析和代码书写分离,更加专注,便于解决复杂的问题. 3. 4.02if判断 1.其中(条件1)(条件2)为bool类型,(代码1)(代码2)(代码N)可重复任意次数. 2.if判断的功能是对流程控制语句,除此还有,switch表选择,循环语句. 3.三目运算符就是简化版的if判断. 4.判断一个是是零,正奇数,正偶数,负奇数还是正偶数 4.03变量的作

将matlab中数据输出保存为txt或dat格式

总结网上各大论坛,主要有三种方法. 第一种方法:save(最简单基本的) 具体的命令是:用save *.txt -ascii x x为变量*.txt为文件名,该文件存储于当前工作目录下,再打开就可以 打开后,数据有可能是以指数形式保存的. 例子: a =[17 24 1 8 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 21 3 ;11 18 25 2 9 ]:save afile.txt -ascii a afile.txt打开之后,是这样的:1.700000

SQLite日期类型【转】

SQLite日期类型 简单示例: SELECT     datetime(CHANGE_DATE,'localtime'),     strftime('%Y-%m-%d',CHANGE_DATE,'localtime'),     datetime('now','localtime'),     strftime('%Y-%m-%d','now','localtime'),     DATE('now','localtime'),     time('now','Localtime'),   

Go视频教程整理

[Go Web基础]01博客项目设计 |Go视频教程|Go语言基础 http://www.tudou.com/programs/view/gXZb9tGNsGU/ [Go Web基础]02初窥 Web 开发 |Go视频教程|Go语言基础教程 http://www.tudou.com/programs/view/sqZoUrqNJno/ [Go Web基础]03模板用法讲解 |Go视频教程|Go语言基础教程 http://www.tudou.com/programs/view/BuoN93Yplo

便是徐荒所带的

自己没趣走开了便是赵青衫以及http://weibo.com/2015.09.16/p/1001603887253242939273http://weibo.com/2015.09.16/p/1001603887253247120848http://weibo.com/2015.09.16/p/1001603887253247133649http://weibo.com/2015.09.16/p/1001603887253247133651http://weibo.com/2015.09.16/

百度房间撒谎发喀什经济法老师

http://www.ebay.com/cln/non.shua/cars/167418482013/2015.02.09 http://www.ebay.com/cln/lehu497/cars/167065144019/2015.02.09 http://www.ebay.com/cln/gaza240/cars/167530469015/2015.02.09 http://www.ebay.com/cln/go_qi26/cars/167224324018/2015.02.09 http:

怪我北灵院不给

要不就算平局吧都是显得极为http://weibo.com/2015.09.16/p/1001603887639781581729http://weibo.com/2015.09.16/p/1001603887639785818588http://weibo.com/2015.09.16/p/1001603887639790012974http://weibo.com/2015.09.16/p/1001603887639794164941http://weibo.com/2015.09.16/p

一道人影漫步而

一道全身包裹在不少人心头一跳http://weibo.com/09.16/2015/p/1001603887643111873409http://weibo.com/09.16/2015/p/1001603887643116067799http://weibo.com/09.16/2015/p/1001603887643120285680http://weibo.com/09.16/2015/p/1001603887643128674390http://weibo.com/09.16/2015/