你的选择是正确的,D。B是错误的,static变量的生命周期是本源程序文件还差不多,因为局部变量也可以声明为static修饰,但它的“作用域”只限于定义它的板块!
这题目出的不好。所谓的标答B是有前提条件的,函数内声明的static变量不会覆盖到整个源文件。
而D选项肯定是错误的。没有显式初始化的静态变量,初值也是随机的。编译器没有义务对其初始化。
D明显不正确,定义的变量如果未赋初值,那么这个变量的初始值是多少完全是看系统分配给你的这段内存中间原来本来就有的值时多少。程序运行之后的任何一件动作都是需要有指令来驱动的。
静态变量没有赋初值!那么它的值是不确定! 变量用static修饰的话,是不会被释放的!因此作用域是本程序!