《谭浩强C语言第四版PPT》的内容主要围绕如何使用函数进行模块化程序设计展开。模块化程序设计是编程中的重要原则,它有助于提高代码的可读性、可维护性和复用性。
7.1 为什么要用函数
在编写大型程序时,如果所有代码都集中在一个主函数中,会导致程序难以理解和维护。为了解决这个问题,可以采用模块化程序设计,即将程序分解成多个小的、独立的函数,每个函数负责一个特定的任务。这样做可以使代码结构清晰,便于重复使用和团队协作。例如,例7.1中通过两个函数`print_star()`和`print_message()`分别处理星号输出和文字输出,避免了代码重复。
7.2 怎样定义函数
在C语言中,定义函数通常包括返回类型、函数名、参数列表以及函数体。例如:
```c
return_type function_name(parameters){
// 函数体
}
```
7.3 调用函数
在需要执行函数所对应功能的地方,通过函数名和括号内传递的参数来调用函数。例如:
```c
print_star();
print_message();
```
7.4 对被调用函数的声明和函数原型
在调用函数前,需要对其进行声明,告诉编译器函数的存在和参数类型。函数原型是函数声明的一种形式,通常在函数定义前给出。例如:
```c
void print_star();
void print_message();
```
7.5 函数的嵌套调用
一个函数可以在另一个函数的体内被调用,这就是函数的嵌套调用。例如,函数A可以调用函数B,函数B又可以调用函数C。
7.6 函数的递归调用
函数可以调用自身,这种调用方式称为递归。在解决某些问题时,递归可以提供简洁的解决方案,但需注意防止无限递归。
7.7 数组作为函数参数
函数不仅可以接受基本数据类型的参数,也可以接收数组。在C语言中,当数组作为参数传递时,实际传递的是数组首元素的地址。
7.8 局部变量和全局变量
局部变量仅在定义它的函数内部可见,而全局变量在整个程序中都是可见的。局部变量在函数结束时被销毁,全局变量则在整个程序运行期间保持其值。
7.9 变量的存储方式和生存期
C语言中,变量的存储方式有自动(栈)、静态(静态存储区)、动态(堆)和寄存器。生存期是指变量从创建到销毁的时间。
7.10 关于变量的声明和定义
声明变量是告诉编译器变量的类型和名称,而定义变量则是分配内存并初始化。声明可以不包含初始值,而定义必须有初始值。
7.11 内部函数和外部函数
内部函数(static修饰的函数)只在其定义的源文件内可见,而外部函数默认在整个程序中可见。使用`extern`关键字可以显式声明外部函数。
通过以上内容的学习,读者将能够理解并掌握C语言中函数的使用,从而更好地实现模块化程序设计,提高代码质量。在实际编程中,要充分利用函数,避免代码冗余,提高代码的可复用性。