首页 理论教育 C语言程序设计|变量作用域:局部变量和全局变量简介

C语言程序设计|变量作用域:局部变量和全局变量简介

时间:2026-01-26 理论教育 小谭同学 版权反馈
【摘要】:在C语言中,变量按作用域范围可分为局部变量和全局变量。局部变量只在本函数内有效,在函数之外不允许使用。局部变量及其作用域。由于全局变量的作用域是整个程序,在函数min 中对R 和C 进行了修改,在函数调用后,全局变量的值保存下来,可以在main 函数中显示。

变量的作用域是指一个变量在程序中可以被使用的范围。如果一个C 程序中只有main 函数,数据的使用范围比较简单。在函数中定义的数据在本函数中定义点之后使用都是合法的,但是当一个程序中包含多个函数时,就要判断在A 函数中定义的变量在B 函数中能否使用。如果变量在允许范围之外使用则是非法的。在C语言中,变量按作用域范围可分为局部变量和全局变量。

1.局部变量

在一个函数内部定义的变量就是局部变量,也叫内部变量。它的作用范围是从变量定义的位置开始到函数体的结束位置。局部变量只在本函数内有效,在函数之外不允许使用。

注意:

(1)由于函数的形参是在函数中定义的,因此,形参也属于局部变量。

(2)在复合语句中定义的变量,它的作用域是从变量定义的位置开始到复合语句的结束位置,这种变量只在复合语句内有效。

(3)不同函数中可以使用名字相同的变量,它们代表不同的对象,分配不同的单元,互不干扰。

(4)main 函数定义的变量也只能在main 函数中使用;main 函数也不能使用其他函数中定义的变量。因为main 函数是一个函数,它与其他函数是平行关系。

【例8.10】局部变量及其作用域。

程序代码:

运行结果:

程序讲解:

在main函数、fun1函数、fun2函数中都定义了同名变量x、y、z,系统为它们分配不同的内存单元,代表不同的变量,它们的使用都只限于各自的函数中。

2.全局变量

一个程序可以包含一个或若干个源程序文件,而一个源程序文件可以包含一个或若干个函数。在所有函数(包含main 函数)之外定义的变量,称为全局变量。全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是从定义该变量的位置开始至源文件结束。(https://www.xing528.com)

对于一个函数来说,既可以使用本函数内定义的局部变量,也可以使用有效的全局变量。如果局部变量与全局变量同名,则在局部变量的作用范围内,全局变量被"屏蔽",即只有局部变量有效。

【例8.11】全局变量的使用。

运行结果:

程序讲解:

在函数fun1 中定义的局部变量x 只能在fun1 中使用;在fun1 之后定义的全局变量x 可以在函数fun2 和main 中使用;在函数fun2 中定义的局部变量x 只能在fun2 中使用;在main函数中又定义了局部变量x 与全局变量同名,全局变量被屏蔽,也就是main 函数中只能使用局部变量x。

【例8.12】有4 个同学的3 门课程,求出其中的最低成绩,以及它属于第几个同学、第几门课。

解题思路:

在程序中要存储有4 个同学的3 门课程需要使用二维数组,用函数min 实现求出其中的最低成绩以及它属于第几个同学、第几门课,需要返回三个值。但是调用函数只能得到一个返回值。因此,程序中定义了两个全局变量,通过全局变量从函数中得到需要的值。

运行结果:

程序讲解:

在程序中定义了两个全局变量R 和C,用来保存最低分的行列信息。由于全局变量的作用域是整个程序,在函数min 中对R 和C 进行了修改,在函数调用后,全局变量的值保存下来,可以在main 函数中显示。

注意:

(1)全局变量在程序的整个执行过程中都占用存储空间。

(2)使用全局变量过多,会降低程序的可读性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈