大学计算机程序设计基础(C语言)--第6章函数剖析
外部全局变量 float f1() { extern int a; …… } float f2() { …… } int a float f3() { …… } /* 文件1 */ int x; main() {……} /* 文件3 */ extern int x; f2 ( ) {……} /* 文件2 */ extern int x; f1( ) {……} 注意:如果在外部变量的定义点之前需使用全局变量,应在该函数中进行外部变量的说明,格式为: extern 外部变量名表 用extern对全局变量加以声明,就可将其作用域扩充到整个源文件或其它源文件中。 静态全局变量 在定义全局变量时加“static”关键字,称为“静态全局变量”。 静态全局变量的作用域:仅限于定义它的源文件中 静态全局变量的生存期:整个程序的运行期间 /* 文件1 */ static int x; main( ) {……} /* 文件2 */ static int x; main( ) {……} 在两个文件中都定义了一个名为x 的静态全局变量,但这两个变量的作用域分别是定义它的文件,分别占据各自的存储单元,互相独立。 函数的存储类别 与函数的存储类别有关的说明符只有两种: extern 和 static extern float fun1(int a) { … …} 或 float fun1(intt a) {… …} static fun2(int x) {… …} 定义了一个外部函数,该函数可以被本文件或其它文件中的函数调用。 定义了一个静态函数,该函数只能被本文件的函数调用,而不允许其它文件中的函数对它进行调用。 程序举例 sub1() { static int k=3; k++; printf(”%d”,k); } sub2() { int k=10; k++; printf(”%d”, k); } sub3() { k++; printf(”%d”,k); } int k; main() { int k=2; printf( “%d”,k); sub1(); sub1(); sub2(); sub2(); sub3(); sub3(); } 例: 分析程序运行结果 第6章 函数 本章内容 函数的定义和返回值 函数的调用和声明 标准函数 1 2 3 函数的参数 4 函数的嵌套调用和递归 5 变量的存储类别 6 函数 一个C语言源程序通常由一个主函数和若干个子函数组成,各子函数之间的关系是平行的,因此不能嵌套定义,但能相互调用。一个C语言源程序无论包含了多少个函数,程序的执行总是从主函数main()开始,并终止于主函数main()。 从用户使用的角度将函数分为两种:标准函数(库 函数)和用户自定义函数。 6.1 函数的定义和返回值 1、函数定义的一般形式: [类型标识符] 函数名([形式参数表]) { [函数体] } 函数名:由用户命名,命名规则与标识符命名规则相同。 类型标识符: 定义了函数返回值的数据类型。当函数的返回值是整形或字符型,可省略类型标识符。当函数无返回值时,则类型标识符用void关键字。 形式参数表的一般形式为: 类型标识符 形参1,类型标识符 形参2,··· 若省略形式参数表,则称为无参函数。否则称为有参函数。 函数体:包含了说明语句和执行语句。当函数无函数体时,则为空函数。 函数的返回值 2、函数的返回值 函数的返回值是通过return语句实现的。 格式:return(表达式);或 return 表达式; 语义:当函数执行到return语句时,程序的流程立即返回到调用该函数的地方(通常称为退出调用函数),并通过return语句返回函数值。return语句中表达式的值就是函数返回值。 注意:如果函数有返回值,这个值就应该有一个确定的数据类型,所以在定义函数首部时应指定函数值的类型。 函数返回值 说明: 在同一个函数内可根据需要在多处设置return语句,函数执行过程中遇到任何一个return语句时,都将立即返回到调用该函数的地方。 如果函数中没有return语句,程序的流程一直执行到函数末尾的右花括号“}”处,然后返回到调用该函数的地方。 为了明确表示“不返回值”
您可能关注的文档
- 大学数学-课件-第九章欧几里得空间第六节剖析.ppt
- 中低速磁悬浮与轻轨、地铁的比较汇编.doc
- 大学无机化学-课件-第10章氧化还原反应剖析.ppt
- 大学无机化学-课件-第22章钛副族和钒副族剖析.ppt
- 大学化学-第4章-电化学原理及应用剖析.ppt
- 中俄帝王的对比汇编.pptx
- 大学无机化学-课件-第20章铬副族和锰副族剖析.ppt
- 大学动物学--动物地理分布剖析.ppt
- 大学无机化学剖析.ppt
- 个体防护用品的作用及佩戴要求培训汇编.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 人教版小学六年级数学册期末检测试卷共八套.doc VIP
- 《新时代汉语口语:中级·下》PPT第15课 读万卷书,行万里路.pptx VIP
- 《新时代汉语口语:中级·下》PPT第5课 如今的四合院.pptx VIP
- 村支书考录公务员笔试试卷(含答案).docx VIP
- 《新时代汉语口语:中级·下》PPT第13课 孩子的零花钱怎么给(新).pptx VIP
- 《新时代汉语口语:中级·下》PPT第11课 我的“选择困难症又犯了(新).pptx VIP
- 铝灰渣资源化利用污染控制技术规范.pdf VIP
- 《新时代汉语口语:中级·下》PPT第14课 我想搬出去住(新).pptx VIP
- 《新时代汉语口语:中级·下》PPT第7课 网购与生活 .pptx VIP
- 2023年江苏省专转本考试计算机真题附答案解析.docx VIP
原创力文档

文档评论(0)