在C语言中,使用 auto 修饰的变量,是具有自动存储器的局部变量。
在一般情况下,局部变量都是被默认是auto的,所以这个关键字一般省略。
C++中auto的使用和C语言有一些区别,这里仅讨论C语言。
变量的分类
变量的分类在此再说一下:
局部变量:包含在代码块中的变量叫做局部变量。局部变量具有临时性。进入代码块,自动形成局部变量,退出代码块自动 释放。
全局变量:在所有函数外定义的变量,叫做全局变量。全局变量具有全局性。
代码块:用{}括起来的区域,就叫做代码块
变量的作用域
作用域:指的是该变量的可以被正常访问的代码区域,也就是变量的有效区域
局部变量:只在本代码块内有效
全局变量:整个程序运行期间,都有效
变量的生命周期
生命周期:指的是该变量从定义到被释放的时间范围,所谓的释放,指的是曾经开辟的空间”被释放“
局部变量: 进入代码块,形成局部变量[开辟空间],退出代码块,"释放"局部变量
全局变量: 定义完成之后,程序运行的整个生命周期内,该变量一直都有效
作用域和生命周期的区别
作用域更多的是指变量有效区域,也就是变量在哪里可以被访问到,而生命周期是一个时间概念,是指变量什么时候开辟和释放。
虽然这两个概念和代码块都有很大的关系,但这两个是完全不同的概念。
auto关键字
如何使用:一般在代码块中定义的变量,即局部变量,默认都是auto修饰的,不过一般省略
并不是默认的所有变量都是auto,auto一般只用来修饰局部变量
局部变量,自动变量,临时变量,都是一回事。我们统称局部变量