变量的存储类别: 静态类和自动类
静态类有:static
自动类有:auto和register
变量的存储类别确定了所说明对象在内存中的存储位置:动态存储区(堆栈),静态存储区,程序代码区
auto :变量是被分配在动态存储区
在每一次执行函数的时候,系统都会重新给这个变量分配一段存储空间,当函数结束的时候,释放这段内存空间
这也是为什么在访问函数内部定义的变量的时候,是不能访问的,只能通过地址的传递和指针的应用才能实现
动态存储区用来保存函数调用时的返回地址,自动类别的局部变量
register:是建议编译器将变量存放在寄存器中,这样在大量访问这个变量的时候,可以加快访问速度,但系统也可能并不在寄存器中分配给这个变量存储空间
如果存放在寄存器中的话,就不能再访问变量的地址,因为这个变来是存放在寄存器当中的,而寄存器的地址是不能被访问的
static:是静态局部变量 被分配在静态存储区
静态存储区用以存放全局变量及静态类别的局部变量
静态局部变量的生存期是整个程序的运行周期
对于未初始化的静态局部变量,编译器会自动赋值为0