早教吧 育儿知识 作业答案 考试题库 百科 知识分享

2.不进行初始化即可自动获得初值0的变量包括()A.局部变量和用static修饰的全局变量B.任何在函数外定义的变量C.任何用static修饰的变量D.全局变量和用static修饰的局部变量

题目详情
2.不进行初始化即可自动获得初值0的变量包括()
A. 局部变量和用static修饰的全局变量
B. 任何在函数外定义的变量
C. 任何用static修饰的变量
D. 全局变量和用static修饰的局部变量
▼优质解答
答案和解析
应该选择: CD
分析:
1. 局部变量在不初始化的时候,其初始值是随机的,不确定的,不会自动获得初值0。排除A
2. static修饰的静态变量(包括静态全局变量、静态局部变量)和全局变量都存储在静态存储区(也是全局数据区),它们的初值都会自动设为0。C D说法正确
3. B的说法有点问题,如果是C++,那么函数可以内联,在内联函数外部定义的变量,对于其外部函数而言,依然是局部变量,因此,这种在函数外部定义的变量就不能自动获得初值0了,而是随机值。当然,如果是在所有函数的外部定义的变量,则可以,因为这种情况是全局变量。这样来说,B的说法绝对化了,不正确。