变量的略知
2019-07-26 本文已影响0人
水无月之痕
变量:全局变量、静态变量、局部变量、字符串常量、动态分配、静态分配
---------------------根据使用范围分类--------------------------
全局变量
存储位置:全局(静态)存储区(static)
使用范围:跨文件
声明定义:函数外面声明,声明时可同时定义赋初始值,没有赋初始值,数值类型的变量系统默认为0。
使用注意:跨文件使用,需要extern前缀+声明格式。本文件使用一般声明定义格式即可。
静态变量
存储位置:全局(静态)存储区(static)
使用范围:在声明的文件内
声明定义:声明位置不限,声明时可同时定义赋初始值,没有赋初始值,数值类型的变量系统默认为0。
局部变量
存储位置:栈区(stack)
使用范围:当前声明定义的函数内,函数释放也随着自动释放
定义声明:声明定义在函数内部
某语言中,同一个变量名的使用的优先级:局部变量>全局变量/静态变量。
------------------根据释放方式-----------------------------
静态分配变量
存储位置:static、stack
释放方式:可根据其作用域结束,自动释放
动态分配变量
存储位置:heap
释放方式:不会自动释放,需要手动添加代码释放,并且可能由于一些操作系统原因导致提前释放。
------------------------其余-----------------------
字符串常量
存储位置:文字常量区
定义声明:使用某字符串,会自动保留常量区,可供不同的变量直接使用同一个常量,不需要再形成新的字符串常量。