Date:2012-11-26
首先预测下面的数组初始化:
int arr[10] = {0};
对,arr被初始化为10个0的int数组.
再看看下面的code:
int arr[10] = {1};
你用gdb(gdb教程:link)看下,print一下arr会发现只有arr[0]是1, 其余为0.
再试试下面的代码:
int arr[10] = {[3] = 2};
会发现只有 arr[3]为2, 其余为0
下面的代码也是可以的!
int arr[10] = {[3 ... 6] = 1, [7 ... 9] = 2}; //注意...前后均有空格
会发现arr被初始化为:{0, 0, 0, 1, 1, 1, 1, 2, 2, 2}
那么以上三种初始化方式都是可以的,只是,没有指明的元素默认清0