C语言的基本变量存储类型的初值,以及作用范围.生存期的概念和关系

来源:百度知道 编辑:UC知道 时间:2024/06/04 16:29:03
语言的基本变量存储类型的初值,以及作用范围.生存期的概念和关系

变量的存储类型是指变量在内存中的存储方式,分为静态存储和动态存储,表示了变量的生存期。

变量分类特性表存储方式存储类型说明符何处定义生存期作用域赋值前的值可赋初值类型动态存储自动变量 auto 寄存器变量 register 函数或复合语句内被调用时在定义它的函数或复合语句内不定基本类型int或char外部变量extern函数之外整个源程序整个源程序静态局部变量static 函数或复合语句内静态全局变量static 函数之外整个源程序在定义它的函数或复合语句内在定义它的源文件内0任何类型

啥叫变量?变量就是一个值,为了使用方便,我们给他们分出来char、unsigned char、short、unsigned short、int、unsigned int、long、unsigned long、float、double还有C语言大名鼎鼎的指针。
实际上,对于计算机来说,并没有这么多的讲究。变量就是一块儿内存空间,我们声明变量就是申请了一块儿内存空间。在程序初始化的时候,编译器会按照我们声明安排内存中哪一块儿归哪个变量使用。至于变量的初值么,如果我们在声明的时候就初始化了变量,变量就有了一个确定的初值。如果我们没有初始化他,有的编译器会帮助我们将变量所拥有的内存空间初始化为0,不管他是char、int、float还是double。不过,不要依赖于编译器帮忙,最好的习惯还是自己初始化。
对变量的初始化不包括指针,谁也不会对指针初始化。编译器为指针分配了内存空间就不管他了,那里面爱是什么就是什么。所以,使用未初始化的指针的后果是不可知的。比较安全的办法还是自己初始化指针,也将他初始化为0。

局部变量的作用域就是他所处的{}之间的空间,外面的事情他管不着,外面的代码也看不见他。
全局变量的作用域就是整个.c或者.cpp咯~~~
也可以在.c或者.cpp文件中使用其他.c或.cpp文件中的全局变量,前提是那个变量被声明为extern类型的。
把全局变量放到.h文件中是比较麻烦的,必须要考虑在某一时刻这个变量会被哪个函数使用和修改。如果是多线程的程序就更麻烦了,谁也不知道它在某一个时刻正在被哪个线程使用。