C语言局部变量与全局变量怎么定义

发布时间:2022-03-17 10:38:54 作者:iii
来源:亿速云 阅读:598

这篇文章主要介绍“C语言局部变量与全局变量怎么定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言局部变量与全局变量怎么定义”文章能帮助大家解决问题。

局部变量与全局变量

一般来说,C语言程序中可以在程序中以下地方定义变量:

(1) 函数体的开头部分。

(2) 函数头部中的形式参数变量。

(3) 函数体内部的复合语句中。

(4) 函数的外部。

    根据变量在程序中定义位置,可以将变量分为“局部变量”和“全局变量”

在函数内部定义的变量称为局部变量。函数体开头部分、函数头中的形式参数和函数体内复合语句中定义的变量都属于局部变量。

局部变量的作用域是从该变量的定义语句开始到包含该变量定义语句的最内层的右大括号结束为止。

C语言局部变量与全局变量怎么定义


源程序文件中在函数外部定义的变量称为全局变量,全局变量作用域的起点是变量定义的位置,全局变量作用域的终点中其所在的源程序文件的结束。

C语言局部变量与全局变量怎么定义


变量的存储方式

C语言中,供用户程序运行使用的内存空间分为三个部分:程序区、静态存储区和动态存储区。

    (1) 程序区存放可执行的程序指令。

    (2) 静态存储区存放程序运行期间占用固定内存单元的变量,包括程序中定义的全局变量、静态局部变量(static)等。

    (3) 动态存储区存放程序运行期间根据需要动态分配存储单元的变量,包括程序中定义的非static的局部变量、函数的形式参数等。



    C语言中变量的存储类别具体可以分为4种:自动(auto)、静态(static)、寄存器(register)和外部(extern)。


  

局部变量的存储类别

    局部变量有三种存储类型:自动(auto)、静态(static)和寄存器(register)。

1. 自动局部变量

    函数中的局部变量,如果没有特别声明为static(静态)存储类别,都是由系统动态地分配和释放内存空间,变量存放在动态存储区中,称为自动变量。函数中的形参也属于自动变量。

2. 静态局部变量

    如果希望函数中局部变量的值在函数调用结束后仍然保留原来的值,即系统不释放变量占用的内存空间,在下一次函数调用时,该变量保持上一次函数调用结束后的值。此时应该使用static关键字把局部变量说明成静态存储方式。

3. 寄存器变量

一般情况下,变量存放在内存空间中,当程序中使用变量时,由控制器发出的指令把数据从内存中变量的值送到运算器,经过运算器产生的结果,如果需要保存,再从运算器送到内存。如果程序中某些变量使用非常频繁,那么数据的内存访问的时间就会影响程序运行的效率。

   C语言允许将使用频繁的变量存放在寄存器中,以提高程序的运行效率。


全局变量的存储类别

    全局变量是存放在静态存储区的,它们的生命期是固定的,是程序运行的整个过程。全局变量主要有2种存储类别:外部(extern)和静态(static)。

1. 外部全局变量

   如果要在一个源程序文件中使用其它源程序文件中定义的全局变量,则需要使用关键字extern说明。

   备注:是使用已定义的全局变量,而不是定义新的全局变量,具体见书P135示例。

2. 静态全局变量

    程序设计中如果希望某个源程序文件中定义的全局变量只能在本文件中使用,不能在其它源程序中使用,则可以在定义全局变量时加上static关键字说明。

关于“C语言局部变量与全局变量怎么定义”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. 全局变量与局部变量
  2. mysql的全局变量与局部变量介绍

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:python列表推导的语法是什么

下一篇:python怎么检查对象的内存使用情况

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》