清华大学出版社 TSINGHUA UNIVERSITY PRESS (1)主函数中定义的变量只在主函数中有效而不因为 在主函数中定义而在整个文件或程序中有效。主 函数也不能使用其他函数中定义的变量 (2)不同函数中可以使用相同名字的变量它们代表 不同的对象,互不干扰。 (3)形式参数也是局部变量。 (4)在一个函数内部可以在复合语句中定义变量这 些变量只在本复合语句中有效这种复合语句也称 为“分程序”或“程序块
(1)主函数中定义的变量只在主函数中有效,而不因为 在主函数中定义而在整个文件或程序中有效。主 函数也不能使用其他函数中定义的变量。 (2) 不同函数中可以使用相同名字的变量,它们代表 不同的对象,互不干扰。 (3) 形式参数也是局部变量。 (4) 在一个函数内部,可以在复合语句中定义变量,这 些变量只在本复合语句中有效,这种复合语句也称 为“分程序”或“程序块”
清华大学出版社 TSINGHUA UNIVERSITY PRESS #include <stdio.h> maino inti=2j=3k;/*主函数体内定义的局部变 ki+ intk=8;/*复合语句定义的局部变量* printf("k=%odn", k) 和k=n”k)} k=8
#include <stdio.h> main() { int i=2,j=3,k; /*主函数体内定义的局部变 量*/ k=i+j; { int k=8; /*复合语句定义的局部变量*/ printf("k=%d\n",k); } 程序执行结果为: printf("k=%d\n",k);} k=8 k=5
清华大学出版社 TSINGHUA UNIVERSITY PRESS 6.3.2全局变量 外部变量:函数之外定义的变量称为外 部变量。外部变量可以为本文件中其他 函数所共用。它的有效范围为从定义变 量的位置开始到本源文件结束。所以也 称全程变量
6.3.2 全局变量 •外部变量:函数之外定义的变量称为外 部变量。外部变量可以为本文件中其他 函数所共用。它的有效范围为从定义变 量的位置开始到本源文件结束。所以也 称全程变量
清华大学出版社 TSINGHUA UNIVERSITY PRESS 建议:不必要时不要使用全局变量,原因如下 ①全局变量在程序的全部执行过程中都占用存储单 元,而不是仅在需要时才开辟单元 ②使用全局变量过多,会降低程序的清晰性。在各 个函数执行时都可能改变外部变量的值,程序容易 出错。因此,要限制使用全局变量
建议:不必要时不要使用全局变量,原因如下: ① 全局变量在程序的全部执行过程中都占用存储单 元,而不是仅在需要时才开辟单元。 ② 使用全局变量过多,会降低程序的清晰性。在各 个函数执行时都可能改变外部变量的值,程序容易 出错。因此,要限制使用全局变量
清华大学出版社 TSINGHUA UNIVERSITY PRESS ③降低函数的通用性。因为函数在执行时要依赖于 其所在的外部变量。如果将一个函数移到另一个文 件中,还要将有关的外部变量及其值一起移过去 但若该外部变量与其他文件的变量同名时,就会出 现问题,降低了程序的可靠性和通用性。一般要求 把C程序中的函数做成一个封闭体,除了可以通过 实 形参”的渠道与外界发生联系外,没有 其他渠道
③降低函数的通用性。因为函数在执行时要依赖于 其所在的外部变量。如果将一个函数移到另一个文 件中,还要将有关的外部变量及其值一起移过去。 但若该外部变量与其他文件的变量同名时,就会出 现问题,降低了程序的可靠性和通用性。一般要求 把C程序中的函数做成一个封闭体,除了可以通过 “实参——形参”的渠道与外界发生联系外,没有 其他渠道