北大青鸟 C语言实现 9
北大青鸟 C语言实现 9
第九章
函数
Version 3.0
北大青鸟 C语言实现 9
回顾 指针变量 指针运算符 指针与数组 内存分配
北大青鸟 C语言实现 9
目标 掌握函数的结构 掌握函数声明和原型 按值传递 / 按地址传递 理解函数的作用域 掌握函数指针
北大青鸟 C语言实现 9
函数 独立的程序段 执行一个具体的, 执行一个具体的,明确定义的任务 易于编写,理解, 易于编写,理解,调试和维护 将需要多次执行的一组指令定义为函数
北大青鸟 C语言实现 9
函数的结构返回值的数据类型
有效的函数名
形式参数
type_specifier function_name ( arguments ) { 函数体 }5
北大青鸟 C语言实现 9
函数的参数#include <stdio.h> int squarer(int x); main() 实际参数 { int i; for(i =1; i <=10; i++) printf("\nSquare of %d is %d ", i,squarer (i)); } int squarer(int x) /* int x; */ { int j; j = x * x; return(j); }
形式参数
北大青鸟 C语言实现 9
从函数返回 将控制权从函数传回主调程序 把 return 语句中的内容返回给主调程序int squarer(int x) /* int x; */ { int j; j = x * x; return(j); }
北大青鸟 C语言实现 9
函数的数据类型 如果返回的是一个整型值或者没有返回值, 如果返回的是一个整型值或者没有返回值, 可以省略类型标识符 为了避免出现不一致,最好指定数据类型 为了避免出现不一致,int squarer(int x) /* int x; */ { int j; j = x * x; return(j); }
北大青鸟 C语言实现 9
调用函数 函数名后面必须有括号 一个函数只能返回一个值 程序可以有一个以上的函数 主调函数
被调函数9
北大青鸟 C语言实现 9
函数声明 在定义之前使用函数,必须声明 在定义之前使用函数, 否则,一些编译器会返回错误 否则,#include <stdio.h> main() { address(); } address() { }
"隐式"声明 隐式"
北大青鸟 C语言实现 9
函数原型 指定参数的数据类型 如果调用时所使用的参数与原型的参数之 间不一致, 间不一致,系统将报错 char abc(int x, int y); abc(12);11
北大青鸟 C语言实现 9
变量 局部变量– 在函数内部声明 – 进入一个程序块时创建,退出该程序块时销毁
形式参数– 在函数定义中被声明为参数 – 在函数内部像局部变量一样使用
全局变量– 在所有函数以外声明 – 在程序的整个执行期间都拥有值12
北大青鸟 C语言实现 9
存储类别 2-1 存储类别是变量的属性 存储类别定义了: 存储类别定义了:– 生命周期保留特定值的时间长度
– 可见性程序的哪些部分将能够"看见"该变量
北大青鸟 C语言实现 9
存储类别 2-2 自动的(auto) 自动的 外部的 外部的(extern) 静态的 静态的(static) 寄存器的 寄存器的(register)
北大青鸟 C语言实现 9
函数作用域规则 一块代码是否有权访问另一块代码或数据 函数内部的代码对该函数来说是私有或局部的 两个函数拥有不同的作用域但处于相同的级别 两个函数拥有不同的作用域但处于相同的级别 函数不能在其他函数以内定义
北大青鸟 C语言实现 9
调用函数 按值传递100# 25 25
按地址传递
100# 25 100
北大青鸟 C语言实现 9
按值传递 变量的值被传递给被调函数,并且对这个
值 变量的值被传递给被调函数, 的任何改变都不会影响被传变量的原始值 默认情况下,函数参数都是按值传递的 默认情况下, 参数值是通过临时变量传递的 所有操作都针对这些临时变量17
北大青鸟 C语言实现 9
按地址传递 允许函数访问内存位置 被调函数能够修改主调程序的参数的值 定义 getstr(char *ptr_str, int *ptr_int); 使用 getstr(pstr, &var);18
北大青鸟 C语言实现 9
函数调用的嵌套
main() { . . palindrome(); . . }19
palindrome() { . . getstr(); reverse(); cmp(); . . }
…… 此处隐藏:253字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




