首页 理论教育 C语言程序设计教程:局部变量和全局变量解析

C语言程序设计教程:局部变量和全局变量解析

时间:2023-10-23 理论教育 版权反馈
【摘要】:在一个函数内部或复合语句内定义的变量称为局部变量,在函数外部定义的变量称为全局变量。用作函数形参的变量也只能被当前函数内部使用,因此不同函数的局部变量可以同名。图6-9例6-9的运行结果程序运行时,一开始编译系统并不给局部变量分配内存空间,只有调用局部变量所在的函数时,才临时分配内存空间,调用结束后立即释放空间。可见,当变量名相同时,最小范围内的局部变量优先权最高。

C语言程序设计教程:局部变量和全局变量解析

变量定义的位置决定了其作用域。在一个函数内部或复合语句内定义的变量称为局部变量,在函数外部定义的变量称为全局变量。

1.局部变量

局部变量的作用域仅限于函数内或复合语句内,在函数或复合语句以外是不能使用这些变量的。用作函数形参的变量也只能被当前函数内部使用,因此不同函数的局部变量可以同名。

【例6-9】分析程序的运行结果。

程序运行结果如图6-9所示。

图6-9 例6-9的运行结果

【说明】程序运行时,一开始编译系统并不给局部变量分配内存空间,只有调用局部变量所在的函数时,才临时分配内存空间,调用结束后立即释放空间。上述代码中,main()函数的声明语句部分和复合语句中都定义了变量a,各自有不同的内存空间,互不影响。当执行复合语句内的printf语句时,输出的是复合语句内局部变量a的值,复合语句外的变量a被屏蔽;当退出复合语句时,其内部的变量a被释放,输出外部的变量a的值。可见,当变量名相同时,最小范围内的局部变量优先权最高。

2.全局变量

全局变量的定义位置可以是当前程序文件的任何位置,其作用域从定义位置开始一直到程序运行结束,它不属于某个函数,可以被当前程序文件的所有函数共用。在程序运行时就被分配存储空间,只有程序退出时才释放空间。(www.xing528.com)

【例6-10】通过全局变量求长方体的体积以及正、侧、底3个面的面积。

例6-10 运行视频

程序运行结果如图6-10所示。

图6-10 例6-10的运行结果

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

我要反馈