[其它产品/技术] C语言的局部与全局与变量存储类别

[复制链接]
 楼主| AdaMaYun 发表于 2025-2-22 22:39 | 显示全部楼层 |阅读模式
1、局部与全局
C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。在复合语句中也可定义变量,其作用域只在复合语句范围内。 全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。


 楼主| AdaMaYun 发表于 2025-2-22 22:39 | 显示全部楼层
2、变量存储类别
mtianyan: C语言根据变量的生存周期来划分,可以分为静态存储方式和动态存储方式。
静态存储方式:是指在程序运行期间分配固定的存储空间的方式。静态存储区中存放了在整个程序执行过程中都存在的变量,如全局变量。 动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;自动变量;函数调用时的现场保护和返回地址等。 C语言中存储类别又分为四类:
  • 自动(auto)、
  • 静态(static)、
  • 寄存器的(register)
  • 外部的(extern)。
szt1993 发表于 2025-2-24 16:20 | 显示全部楼层
全局变量全局都是可以适应使用的
 楼主| AdaMaYun 发表于 2025-2-25 12:31 | 显示全部楼层
szt1993 发表于 2025-2-24 16:20
全局变量全局都是可以适应使用的

一般建议使用局部变量最好
suncat0504 发表于 2025-2-25 22:13 | 显示全部楼层
全局的变量尽量少用,尤其是涉及多个C文件的。容易弄乱了。
星辰大海不退缩 发表于 2025-2-26 16:29 | 显示全部楼层
C语言根据变量的生存周期来划分,可以分为静态存储方式和动态存储方式。
地瓜patch 发表于 2025-2-27 21:52 来自手机 | 显示全部楼层
类别还有不同么
lix1yr 发表于 2025-4-10 14:09 | 显示全部楼层
在C语言中,变量的作用域和存储类别决定了变量的生命周期、可见性以及存储位置。
zhizia4f 发表于 2025-4-10 15:14 | 显示全部楼层
局部变量是在函数或代码块内部定义的变量。作用域仅限于定义它的函数或代码块。局部变量在函数或代码块执行时创建,在函数或代码块结束时销毁。并且局部变量通常存储在栈(Stack)中
q1ngt12 发表于 2025-4-10 16:19 | 显示全部楼层
其实全局变量是在所有函数外部定义的变量。
y1n9an 发表于 2025-4-10 17:28 | 显示全部楼层
一般全局变量主要的作用域从定义点开始,到文件结束。
su1yirg 发表于 2025-4-10 18:41 | 显示全部楼层
全局变量在程序启动时创建,在程序结束时销毁
tax2r6c 发表于 2025-4-10 21:13 | 显示全部楼层
我知道的是,全局变量通常存储在全局/静态存储区
l1uyn9b 发表于 2025-4-10 22:28 | 显示全部楼层
C语言提供了四种存储类别关键字,用于控制变量的存储位置和生命周期:auto默认的存储类别,用于局部变量。变量存储在栈中,生命周期与函数或代码块相同。
q1d0mnx 发表于 2025-4-11 09:14 | 显示全部楼层
还有static用于局部变量时,变量的生命周期延长到整个程序运行期间,但作用域不变。用于全局变量时,变量的作用域限制在当前文件内(文件作用域)。
w2nme1ai7 发表于 2025-4-11 11:56 | 显示全部楼层
register建议编译器将变量存储在寄存器中,以提高访问速度。不能取地址(因为寄存器没有内存地址)。
g0d5xs 发表于 2025-4-11 14:10 | 显示全部楼层
我觉得最常用的应该是extern吧,用于声明在其他文件中定义的全局变量。扩展全局变量的作用域到当前文件。
慢动作 发表于 2025-4-29 11:37 | 显示全部楼层
在 C 语言中,变量的存储类别与作用域密切相关,不同的存储类别决定了变量的生命周期、可见性以及如何在内存中分配。
键盘手没手 发表于 2025-4-30 22:48 | 显示全部楼层
局部变量是在函数内部或代码块(如 if 语句、循环语句)内定义的变量。
键盘手没手 发表于 2025-4-30 22:48 | 显示全部楼层
局部变量的作用域仅限于定义它的函数或代码块。离开这个作用域后,变量就不可再访问。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

299

主题

2492

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部