静态变量如果没有初始化~则默认为各字节。
因为静态变量所处的是区域是静态数据存储区~
在这个区域里·包括静态数据和全局数据~
并不是如普通局部变量一样处在栈中~
这块区域很特殊~在分配的时候就已经初始化为0~
这也是为什么静态数据不初始化也能相对正常地运行的原因~
静态局部变量是一种特殊的静态变量~
在编译期间~该局部变量被识别为静态数据~
则在静态区域内分配资源~不会如栈中的其他局部变量那样~
因此,此静态局部变量的生存周期是整个程序期间~
而不是定义的函数结束(即定义此静态局部变量的函数返回)~
那么~这个静态存储变量是否能在其他的地方使用呢?
不能~
因为即便他的生存周期是整个程序运行期间~
但~他的作用域依旧只在这个函数中起效果~
即~不是在这个函数中调用的话~则访问无效~无此变量~
OK~说了这么多~不知道楼主明白了没有?
只要是静态的数据~则都存储在静态数据区~
则自动初始化为各位为0~
这样的话~这两个问题·也算是回答了吧~?
因为静态变量所处的是区域是静态数据存储区~
在这个区域里·包括静态数据和全局数据~
并不是如普通局部变量一样处在栈中~
这块区域很特殊~在分配的时候就已经初始化为0~
这也是为什么静态数据不初始化也能相对正常地运行的原因~
静态局部变量是一种特殊的静态变量~
在编译期间~该局部变量被识别为静态数据~
则在静态区域内分配资源~不会如栈中的其他局部变量那样~
因此,此静态局部变量的生存周期是整个程序期间~
而不是定义的函数结束(即定义此静态局部变量的函数返回)~
那么~这个静态存储变量是否能在其他的地方使用呢?
不能~
因为即便他的生存周期是整个程序运行期间~
但~他的作用域依旧只在这个函数中起效果~
即~不是在这个函数中调用的话~则访问无效~无此变量~
OK~说了这么多~不知道楼主明白了没有?
只要是静态的数据~则都存储在静态数据区~
则自动初始化为各位为0~
这样的话~这两个问题·也算是回答了吧~?

