为了账号安全,请及时绑定邮箱和手机立即绑定

静态语言和动态语言在变量的作用域的区别是什么

静态语言和动态语言在变量的作用域的区别是什么

C
叮当猫咪 2019-04-12 11:06:54
静态语言和动态语言在变量的作用域的区别是什么
查看完整描述

6 回答

?
森栏

TA贡献1810条经验 获得超5个赞

静态变量,就是在定义的时候,有static 修饰的变量,形式为
static TYPE var_name = init_value;
而动态变量,形式为
TYPE var_name = init_value;
即没有static 修饰。其中的=init_value均可省略。
区分定义在函数外的全局变量,和函数内的局部变量,作用域,生命周期,及无显式初始化时的初始值,均有区别。
1 动态全局变量:
作用域为整个项目,即最终编译成可执行文件的所有文件中均可以使用动态全局变量。
生命周期为从程序运行到程序退出,即贯穿整个运行时间。
无显式初始化时默认初始化值为0。

2 静态全局变量:
作用域为当前文件,从定义/声明位置到文件结尾。
生命周期为从程序运行到程序退出,即贯穿整个运行时间。
无显式初始化时默认初始化值为0。

3 动态局部变量:
作用域为当前函数,从定义位置,到其所在的{}的结束位置。
生命周期为从函数调用到函数退出。
无显式初始化时默认初始化值为随机值。

4 静态局部变量:
作用域为当前函数,从定义位置,到其所在的{}的结束位置。
生命周期为从程序运行到程序退出,即贯穿整个运行时间,当下次函数调用时,静态局部变量不会被再次初始化,而是沿用上次函数退出时的值。
无显式初始化时默认初始化值为0。



查看完整回答
反对 回复 2019-04-13
?
炎炎设计

TA贡献1808条经验 获得超4个赞

全局变量声明之前加上static,就是静态全局变量。全局变量和静态全局变量都是静态存储的;在存储上无区别。区别在于他们的作用域;全局变量的作用域是整个源程序,当源程序有多个源文件组成时,全局变量在各个源程序文件都是有效的;而静态全局变量怎被限制了作用域,只在定义该变量的源文件内有用在同一程序的其他源文件不能使用!
还有静态全局变量只初始化一次,防止在其他源文件调用!而全局变量可以再其他源文件初始化!!

查看完整回答
反对 回复 2019-04-13
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

静态变量,就是在定义的时候,有static 修饰的变量,形式为
static TYPE var_name = init_value;
而动态变量,形式为
TYPE var_name = init_value;
即没有static 修饰。其中的=init_value均可省略。
区分定义在函数外的全局变量,和函数内的局部变量,作用域,生命周期,及无显式初始化时的初始值,均有区别。
1 动态全局变量:
作用域为整个项目,即最终编译成可执行文件的所有文件中均可以使用动态全局变量。
生命周期为从程序运行到程序退出,即贯穿整个运行时间。
无显式初始化时默认初始化值为0。

静态全局变量
作用域为当前文件,从定义/声明位置到文件结尾。
生命周期为从程序运行到程序退出,即贯穿整个运行时间。
无显式初始化时默认初始化值为0。

3 动态局部变量
作用域为当前函数,从定义位置,到其所在的{}的结束位置。
生命周期为从函数调用到函数退出。
无显式初始化时默认初始化值为随机值。

4 静态局部变量
作用域为当前函数,从定义位置,到其所在的{}的结束位置。
生命周期为从程序运行到程序退出,即贯穿整个运行时间,当下次函数调用时,静态局部变量不会被再次初始化,而是沿用上次函数退出时的值。
无显式初始化时默认初始化值为0。



查看完整回答
反对 回复 2019-04-13
?
临摹微笑

TA贡献1982条经验 获得超2个赞

全局变量声明之前加上static,就是静态全局变量。全局变量和静态全局变量都是静态存储的;在存储上无区别。区别在于他们的作用域;全局变量的作用域是整个源程序,当源程序有多个源文件组成时,全局变量在各个源程序文件都是有效的;而静态全局变量怎被限制了作用域,只在定义该变量的源文件内有用在同一程序的其他源文件不能使用!
还有静态全局变量只初始化一次,防止在其他源文件调用!而全局变量可以再其他源文件初始化!

查看完整回答
反对 回复 2019-04-13
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

最大的区别就是静态变量在其作用域里的值会有一个储存空间,而这个空间在程序结束之前是不会被删除的,所以静态变量在执行程序时会保留前一次执行的值,也就是只能被初始化一次。而动态变量是可以一直处于赋值语句中。

查看完整回答
反对 回复 2019-04-13
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

局部变量和全局变量
定义位置 存储区 初值
局部变量 函数内部
(含形参) 动态存储区 除形参外,随机值
全局变量 函数外部 静态存储区 0
生命期(作用范围):
局部变量 只有所在函数可以使用。所在函数执行开始:系统分配内存单元;
所在函数执行完毕:系统回收内存单元。
全局变量 从定义处至文件尾的所有函数都可引用。一般置于文件开始处。
程序执行开始:系统分配内存单元;程序执行完毕:系统回收内存单 元。



查看完整回答
反对 回复 2019-04-13
  • 6 回答
  • 0 关注
  • 698 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信