第十章 带参数的函数
第十章 带参数的函数
回顾2-1 口函数是程序中的一个相对独立的单元或模块 口使用函数带来的好处:程序更清晰、易维护、分 模块方便设计与开发、提高代码的重用性 口C语言提供了极为丰富的内置函数,要使用这些 内置函数,需要在程序前包含相应的头文件 口自定义函数是用户在程序中根据需要而编写的函 数
2 回顾 2-1 ❑函数是程序中的一个相对独立的单元或模块 ❑使用函数带来的好处: 程序更清晰、易维护、分 模块方便设计与开发、提高代码的重用性 ❑C语言提供了极为丰富的内置函数,要使用这些 内置函数,需要在程序前包含相应的头文件 ❑自定义函数是用户在程序中根据需要而编写的函 数
回顶2-2 口函数的结构包括:返回值类型、函数名、参数列 表、函数体 口函数原型说明以便向编译器指出该函数使用什么 样的格式和语法 口函数调用时程序控制流将转向被调函数,被调函 数执行结束时,控制流返回主调函数 口 return语句用于向调用函数返回值
3 回顾 2-2 ❑函数的结构包括:返回值类型、函数名、参数列 表、函数体 ❑函数原型说明以便向编译器指出该函数使用什么 样的格式和语法 ❑函数调用时程序控制流将转向被调函数,被调函 数执行结束时,控制流返回主调函数 ❑return 语句用于向调用函数返回值
目标 口理解变量的作用域 口理解变量的存储类型 口理解两种参数传递的方式:传值、引用 口熟悉带参函数的调用 口熟练使用数组作为函数参数
4 目标 ❑理解变量的作用域 ❑理解变量的存储类型 ❑理解两种参数传递的方式:传值、引用 ❑熟悉带参函数的调用 ❑熟练使用数组作为函数参数
变量的作用域4-1 限于陆地 限于海洋 限于 于空中 作用域是某些事物起作用或有效的区域
5 变量的作用域 4-1 作用域是某些事物起作用或有效的区域。 限于陆地 限于海洋 限于空中
变量的作用域4-2 口程序中变量也有不同的使用范围,称为变量的作用域。变 量的作用域决定变量的可访问性 ⅴ。 id displayDiscount() 彐1 oat discount amt void main o float discount amt roid displayDiscounto) 局部变量:不能在函数外使用 全局变量:可以在整个程序中使用
6 ❑ 程序中变量也有不同的使用范围,称为变量的作用域。变 量的作用域决定变量的可访问性 变量的作用域 4-2 void displayDiscount() { float discount_amt; . . . . . . . . . } 局部变量:不能在函数外使用 float discount_amt; void main() { . . . . . . } void displayDiscount() { . . . . . . } 全局变量:可以在整个程序中使用
变量的作用域4-3 #include 内存 void addNumberso sUm nt num 1. num2 sum 56 print("n请输入两个数:"); 0 n um2 scanf("%d %d", &num1, &num2) sum=num1+num2:《 5 printi("子函数中sum的值是%Ⅶn"sum void maino 101 int sum=0 addNumbers0;《 请输入两个数:5645 prtn函数中sum的值是%d"su子西数中sm的值是101 主函数中sum的值是0
7 变量的作用域 4-3 #include void addNumbers() { int num1,num2,sum; printf("\n 请输入两个数:"); scanf("%d %d",&num1,&num2); sum=num1+num2; printf(" 子函数中 sum 的值是 %d \n",sum); } void main() { int sum=0; addNumbers(); printf("\n 主函数中 sum 的值是 %d \n ",sum); } 内存 sum 0 num2 45 num1 请输入两个数:56 45 子函数中sum的值是101 主函数中sum的值是 0 56 sum 101
变量的作用域44 include 内存 int sun=0;《 num1 void addNumberso sum 56 int num 1. num2. 101)nm2 print(C"n请输入两个数:"); scanf("%d %d", &num1, &num2); 45 sum=num 1+num2 print(C子函数中sum的值是%dn",um);← 请输入两个数:5645 void maino 子函数中sum的值是101 addNumbers(;《 主函数中sum的值是101 print("n主函数中sum的值是%dn",sum);
8 变量的作用域 4-4 #include int sum=0; void addNumbers() { int num1,num2; printf("\n 请输入两个数:"); scanf("%d %d",&num1,&num2); sum=num1+num2; printf(" 子函数中 sum 的值是 %d \n",sum); } void main() { addNumbers(); printf("\n 主函数中 sum 的值是 %d \n ",sum); } 内存 sum 0 num2 45 num1 请输入两个数:56 45 子函数中sum的值是101 主函数中sum的值是101 56 101
存储类型2-1 口变量的存储方式可分为“静态存储”和“动态存储”两 种 口静态存储变量是一直存在的,而动态存储变量则时而存 在时而消失 口这种由于变量存储方式不同而产生的特性称为变量的生 存期 口生存期表示了变量存在的时间
9 存储类型 2-1 ❑ 变量的存储方式可分为“静态存储”和“动态存储”两 种 ❑ 静态存储变量是一直存在的,而动态存储变量则时而存 在时而消失 ❑ 这种由于变量存储方式不同而产生的特性称为变量的生 存期 ❑ 生存期表示了变量存在的时间
存储类型2-2 存储类型说明 auto 自动变量局部变量在缺省存储类型的情况下归为自动 变量。 register寄存器变存放在cPU的寄存器中。对于循环次数较多 量的循环控制变量及循环体内反复使用的变量 均可定义为寄存器变量。 static静态变量在程序执行时存在,并且只要整个程序在运 行,就可以继续访问该变量。 extern外部变量作用域是整个程序,包含该程序的各个文件。 生存期非常长,它在该程序运行结束后,才 释放内存。 10
10 存储类型 2-2 存储类型 说明 auto 自动变量 局部变量在缺省存储类型的情况下归为自动 变量。 register 寄存器变 量 存放在CPU的寄存器中。对于循环次数较多 的循环控制变量及循环体内反复使用的变量 均可定义为寄存器变量。 static 静态变量 在程序执行时存在,并且只要整个程序在运 行,就可以继续访问该变量。 extern 外部变量 作用域是整个程序,包含该程序的各个文件。 生存期非常长,它在该程序运行结束后,才 释放内存