
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501
程序设计基础(上) 张立红 13405330459(88028) QQ:2653453357 9#501

第7章函数 本章知识点 7.1函数概述 7.2函数的定义和使用 7.3嵌套调用与递归调用 7.4变量与函数 7.5随机数函数
第7章 函数 本 章 知 识 点 7.1 函数概述 7.2 函数的定义和使用 7.3 嵌套调用与递归调用 7.4 变量与函数 7.5 随机数函数

7.4变量与函数-P131-.136 一、变量的作用域:变量有效作用的范围。 ■变量分类(按作用域) ◆局部变量(local variable) ,函数内定义,只在本函数内才能使用。 ~复合语句中定义,只在本复合语句范围内有效。 ◆全局变量(global variable) >函数外定义,从定义变量的位置开始到本源文件 结束
7.4 变量与函数-P131-136 一、变量的作用域:变量有效作用的范围。 ◼ 变量分类(按作用域) ◆ 局部变量(local variable) ➢ 函数内定义,只在本函数内才能使用。 ➢ 复合语句中定义,只在本复合语句范围内有效。 ◆ 全局变量(global variable) ➢ 函数外定义,从定义变量的位置开始到本源文件 结束

1.局部变量的作用域 ①double f1(inta) a、b、c仅在f1函 ②{intb,c; 数内有效 ③ ④ a、b类似于不同班 的同名学生 ⑤ int main() ⑥{inta,b; a、b仅在main函 ⑦ 数内有效 ⑧ return 0; ⑨}
① double f1( int a) ② { int b,c; ③ . ④ } ⑤ int main( ) ⑥ { int a,b; ⑦ . ⑧ return 0; ⑨ } a、b类似于不同班 的同名学生 a、b仅在main函 数内有效 a、b、c仅在f1函 数内有效 1. 局部变量的作用域

1.局部变量的作用域 a、b在main函 ① int main ( 数内有效 ② int a,b; ③ ■■■■■■ ④ int c; c仅在此复合 ⑤ 语句内有效 ⑥ ■■■■■■ ⑧
① int main ( ) ② { int a,b; ③ . ④ { int c; ⑤ . ⑥ } ⑦ . ⑧ } a、b在main函 数内有效 c 仅在此复合 语句内有效 1. 局部变量的作用域

关于局部变量的作用域,说明如下: (1)主函数main中定义的变量只能在主函数main中使用, 不能在其它函数中使用。 (2)主函数main中不能使用其它函数中定义的变量。因为主 函数也是一个函数,主函数main与其它函数是平行关系。 (3)形参变量是属于被调函数的局部变量,实参变量是属于 主调函数的局部变量。 (4)允许在不同的函数中使用相同的变量名,它们代表不同 的变量,分配不同的存储单元,互不干扰
关于局部变量的作用域,说明如下: (1)主函数main中定义的变量只能在主函数main中使用, 不能在其它函数中使用。 (2)主函数main中不能使用其它函数中定义的变量。因为主 函数也是一个函数,主函数main与其它函数是平行关系。 (3)形参变量是属于被调函数的局部变量,实参变量是属于 主调函数的局部变量。 (4)允许在不同的函数中使用相同的变量名,它们代表不同 的变量,分配不同的存储单元,互不干扰

例:局部变量的作用域。 ① #include ② int main() <1)k=10 ③ int i=2,j=3,k 2)k=5 ④ k=i+jj ⑤ {intk=10;∥复合语句内定义k ⑧ printf("(1)k=y%d小n",k); ⑦ ⑧ printf("(2)k=%dIn",k); ⑨ return 0;
例:局部变量的作用域。 ① #include ② int main() ③ { int i = 2, j = 3 , k ; ④ k = i + j; ⑤ { int k=10; // 复合语句内定义k ⑥ printf(" (1) k=%d\n",k); ⑦ } ⑧ printf(" (2) k=%d\n",k); ⑨ return 0; ⑩ }

2、全局变量的作用域 >全局变量:在函数之外定义的变量。 >全局变量可以为本程序中其它函数所共用。 >全局变量的有效范围:从定义变量的位置开始到 本程序结束
2、全局变量的作用域 ➢ 全局变量:在函数之外定义的变量。 ➢ 全局变量可以为本程序中其它函数所共用。 ➢ 全局变量的有效范围:从定义变量的位置开始到 本程序结束

① int p=1,q=5 ② p、q的有效范围 an5n”0■nn ③ char c1,c2; ④ a■a O■n ⑤ ⑥ int main ( ⑦ c1、c2的有效范围 ⑧ nnnaaa ⑨ return 0; ⑩
① int p=1,q=5 ② . ③ char c1,c2; ④ . ⑤ ⑥ int main ( ) ⑦ { ⑧ . ⑨ return 0; ⑩ } p、q的有效范围 c1、c2的有效范围

若全局变量与局部变量同名,结果? ① #include ② inta=3,b=5;1全局变量 ⑧ int max(int a,int b); b为全局变量 ④ int main() ⑤ int a=8; ⑥ printf("%din",max(a,b)); ⑦ return 0; ⑧ a为局部变量 ⑨ int max(int a,int b) ⑩ intc; ① c=a>b?a:b; a、b、c为局部变量 ② return c;
① #include ② int a=3,b=5; //全局变量 ③ int max(int a,int b); ④ int main() ⑤ { int a=8; ⑥ printf("%d\n",max(a,b)); ⑦ return 0; ⑧ } ⑨ int max(int a,int b) ⑩ { int c; ⑪ c=a>b?a:b; ⑫ return c; ⑬ } a为局部变量 b为全局变量 若全局变量与局部变量同名,结果? a、b、c为局部变量