在程序中经常看到这样的写法
unsigned char abc[12] = {0};
疑问在于究竟是[0]被初始还是所有的都被初始化为0了?
实验一
unsigned char abc[12] = {};
- 结果是所有的都被初始化为0了
实验二
unsigned char abc[12] = {1};
- 结果是,只有[0]=1,其他仍旧为0
实验三
unsigned char abc[12];
- 结果是没有被初始化
查一下标准中是怎样描述的
-
例子很容易理解
- 例子中没有说明没有显示设置初始化的元素是怎样初始化的
-
最前面有这样的描述
-
没有显示初始化的元素和静态元素一样使用隐式初始化
- 这就解释了 a = {} 时全被初始化为0的情况
-