您的位置:首页 > 编程语言 > C语言/C++

C语言中的变量访问控制和存储类别

2016-11-20 19:00 260 查看
根据变量的访问类别可以分为局部变量和全局变量。

局部变量是指在函数内部定义的变量。只在函数的内部有效,函数外部不能对其进行访问。同理,不在函数内部定义的变量被称为外部变量也就是全局变量。全局变量可被多个函数访问,C语言中全局变量的作用域为从变量定义处到源文件结束。

根据变量的存储类型可分为静态变量和动态变量。

静态变量是指程序运行期间具有固定的存储空间的变量。动态变量则是由程序实时分配的变量,如函数的形参,非static修饰的局部变量。静态变量有:static修饰的局部变量和全局变量。

所以:全局变量一定是静态变量,局部变量可以是静态变量也可以不是。由此可见动态变量是指没有static修饰的局部变量

静态变量的生存周期是从程序加载到内存中开始一直到程序执行结束;动态变量的生存周期和其所在的函数有关,不一定会随着函数的执行而创建(定义在某代码块分支中),一定会随着函数的结束而结束。(这里个人认为静态变量在程序加载到内存中时就会被创建,分配内存空间)

这里局部静态变量依然是局部变量,所以它的可访问范围并不会发生改变。

个人总结,如有错误欢迎指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息