第 八 章
第八章
0本章要点 函数的概念 ●函数的定义与调用 变量的作用 函数的作用城 2021/2/24
2021/2/24 ⚫ 本章要点 ⚫ 函数的概念 ⚫ 函数的定义与调用 ⚫ 变量的作用域 ⚫ 函数的作用域
主要内容 581概述 58.2函数定义的一般形式 §8.3函数参数和函数的值 58.4函数的调用 *8.5函数的嵌套调用 *8.6函数的递归调用 §8.7数组作为函数参数 §88局部变量和全局变量 58.9变量的存储类别 §810内部函数和外部函数 2021/2/24
2021/2/24 ⚫ 主要内容 § 8.1 概述 § 8.2函数定义的一般形式 § 8.3函数参数和函数的值 § 8.4 函数的调用 *§ 8.5 函数的嵌套调用 *§ 8.6函数的递归调用 § 8.7数组作为函数参数 § 8.8 局部变量和全局变量 § 8.9变量的存储类别 § 8.10 内部函数和外部函数
58概述 一个较大的程序可分为 若干个程序模块,每 main 个模块用来实现一个特 定的功能。在高级语言 中用子程序实现模块的 功能。子程序由函数来 成。 C程序可由 血山个主函数和若千个其 函数间的调用关系 e g 由主函数调用其他函数,其他函数也可以互相调用。 同一个函数可以被一个或多个函数调用任意多次。 2021/2/24
2021/2/24 §8.1概述 一个较大的程序可分为 若干个程序模块,每一 个模块用来实现一个特 定的功能。在高级语言 中用子程序实现模块的 功能。子程序由函数来 完成。一个C程序可由 一个主函数和若干个其 他函数构成。 由主函数调用其他函数,其他函数也可以互相调用。 同一个函数可以被一个或多个函数调用任意多次。 函数间的调用关系
例8.1先举一个函数调用的简单例子 i include void main( void printstaro 对 printstar函数声明* void print message; /对 print message函数声明 printstar( /*调用 printstar函数*/ print message(;/调用 print message函数 printstar( /*调用 printstart函数
2021/2/24 # include void main() { void printstar(); /*对printstar函数声明*/ void print_message(); /*对print_message函数声明 */ printstar(); /*调用printstar函数*/ print_message(); /*调用print_message函数*/ printstar(); /*调用printstar函数*/ } 例8.1先举一个函数调用的简单例子
void printstar()/*定义 printstar函数*/ printf(".******来来**An"; void print message(0/*定义 print message函数 printf( How do you do!n 运行情况如下 How do you do! 大大大大大大大尖大大大大大大大
2021/2/24 void printstar() /*定义printstar函数*/ { printf("* * * * * * * * * * * * * * * *\n"); } void print_message() /*定义print_message函数 */ { printf("How do you do!\n"); } 运行情况如下: * * * * * * * * * * * * * * * * How do you do! * * * * * * * * * * * * * * * *
说明: (1)一个C程序由一个或多个程序模块组成,每一个 程序模块作为一个源程序文件。对较大的程序, 般不希望把所有内容全放在一个文件中,而是将他 们分别放在若干个源文件中,再由若干源程序文件 组成一个C程序。这样便于分别编写、分别编译,提 高调试效率。一个源程序文件可以为多个c程序公用。 2021/2/24
2021/2/24 说明: (1)一个C程序由一个或多个程序模块组成,每一个 程序模块作为一个源程序文件。对较大的程序,一 般不希望把所有内容全放在一个文件中,而是将他 们分别放在若干个源文件中,再由若干源程序文件 组成一个C程序。这样便于分别编写、分别编译,提 高调试效率。一个源程序文件可以为多个C程序公用
(2)一个源程序文件由一个或多个函数以及 其他有关内容(如命令行、数据定义等)组成 。一个源程序文件是一个编译单位,在程序编 译时是以源程序文件为单位进行编译的,而不 是以函数为单位进行编译的 (3)C程序的执行是从main函数开始的 ,如是在main函数中调用其他函数,在调 用后流程返回到main函数,在main函 数中结束整个程序的运行。 2021/2/24
2021/2/24 (2) 一个源程序文件由一个或多个函数以及 其他有关内容(如命令行、数据定义等)组成 。一个源程序文件是一个编译单位,在程序编 译时是以源程序文件为单位进行编译的,而不 是以函数为单位进行编译的。 (3)C程序的执行是从main函数开始的 ,如是在main函数中调用其他函数,在调 用后流程返回到main函数,在main函 数中结束整个程序的运行
(4)所有函数都是平行的,即在定义函数时 是分别进行的,是互相独立的。一个函数并不 从属于另一函数,即函数不能嵌套定义。函数 门可以互相调用,但不能调用main函数。 main函数是系统调用的。 2021/2/24
2021/2/24 (4) 所有函数都是平行的,即在定义函数时 是分别进行的,是互相独立的。一个函数并不 从属于另一函数,即函数不能嵌套定义。函数 间可以互相调用,但不能调用main函数。 main函数是系统调用的
(5)从用户使用的角度看,函数有两种 ①标准函数,即库函数。这是由系统提供的 ,用户不必自己定义这些函数,可以直接使 用它们。应该说明,不同的C系统提供的库函 数的数量和功能会有一些不同,当然许多基 本的函数是共同的。 ②用户自己定义的函数。用以解决用户的专 门需要。 2021/2/24
2021/2/24 (5)从用户使用的角度看,函数有两种: ① 标准函数,即库函数。这是由系统提供的 ,用户不必自己定义这些函数,可以直接使 用它们。应该说明,不同的C系统提供的库函 数的数量和功能会有一些不同,当然许多基 本的函数是共同的。 ② 用户自己定义的函数。用以解决用户的专 门需要