c語言:數組初始化另一種寫法加...,前後需要加空格 示例[0 ... 7]

今天看項目代碼的時候,看到一種比較有意思的數組初始化方式,使用過程記錄一下

#include <stdio.h>
#include <string.h>


typedef struct
{
    char * string0;
    char * string1;
    char * string2;
    char * string3;
}CfgFn_s;


const CfgFn_s g_cfg[3][45] =
{
{        
    [0] = {NULL,NULL,NULL,NULL},
    [1] = {"nihao", "word","aa", "yy"},
    [2] = {NULL,NULL,NULL,NULL},
    [3] = {"nihao", "word","aa", "rr"},
    [4 ... 27] = {NULL,NULL,NULL,NULL},  //注意這個位置...的前後需要空格
    [28] = {"bb", "word","gg", "mm"},
    [29 ... 32] = {NULL,NULL,NULL,NULL},
    [33] = {"test", "hh","kk", "bright"},
    [34 ... 37] = {NULL,NULL,NULL,NULL},
    [38] = {"hello", "hh","word", "bright"},
    [39] = {"hello", "hh","word", "bright"},
    [40] = {"hello", "hh","word", "bright"},
    [41] = {"hello", "hh","word", "bright"},
    [42] = {NULL,NULL,NULL,NULL},
    [43] = {NULL,NULL,NULL,NULL},
    [44] = {NULL,NULL,NULL,NULL}

},
{                                                  
    [0] = {NULL,NULL,NULL,NULL},
    [1] = {"word", "word","tt", "tt"},
    [2] = {NULL,NULL,NULL,NULL},
    [3] = {"word", "word","tt", "tt"},
    [4] = {NULL,NULL,NULL,NULL},
    [5] = {"word", "word","tt", "tt"},
    [6 ... 7] = {NULL,NULL,NULL,NULL},
    [8] = {"word", "word","tt", "tt"},
    [9 ... 37] = {NULL,NULL,NULL,NULL},
    [38] = {"hh", "hh","bright", "bright"},
    [39] = {"hh", "hh","bright", "bright"},
    [40] = {"hh", "hh","bright", "bright"},
    [41] = {"hh", "hh","bright", "bright"},
    [42] = {NULL,NULL,NULL,NULL},
    [43] = {NULL,NULL,NULL,NULL},
    [44] = {NULL,NULL,NULL,NULL}
 }
};
int main()
{

	int i=0;
	
	for(i=0;i<45;i++)
	{
		printf("[%d] string0 %s,string1 %s,string2 %s,string3 %s\n",
			i, g_cfg[1][i].string0,g_cfg[1][i].string1,g_cfg[1][i].string2,g_cfg[1][i].string3);
	}
 
	return 0;

}

 

 

 

運行結果是這樣的:

root@build:~/test/arrinit$ gcc arrinit.c 
root@build:~/test/arrinit$ ./a.out       
[0] string0 (null),string1 (null),string2 (null),string3 (null)
[1] string0 word,string1 word,string2 tt,string3 tt
[2] string0 (null),string1 (null),string2 (null),string3 (null)
[3] string0 word,string1 word,string2 tt,string3 tt
[4] string0 (null),string1 (null),string2 (null),string3 (null)
[5] string0 word,string1 word,string2 tt,string3 tt
[6] string0 (null),string1 (null),string2 (null),string3 (null)
[7] string0 (null),string1 (null),string2 (null),string3 (null)
[8] string0 word,string1 word,string2 tt,string3 tt
[9] string0 (null),string1 (null),string2 (null),string3 (null)
[10] string0 (null),string1 (null),string2 (null),string3 (null)
[11] string0 (null),string1 (null),string2 (null),string3 (null)
[12] string0 (null),string1 (null),string2 (null),string3 (null)
[13] string0 (null),string1 (null),string2 (null),string3 (null)
[14] string0 (null),string1 (null),string2 (null),string3 (null)
[15] string0 (null),string1 (null),string2 (null),string3 (null)
[16] string0 (null),string1 (null),string2 (null),string3 (null)
[17] string0 (null),string1 (null),string2 (null),string3 (null)
[18] string0 (null),string1 (null),string2 (null),string3 (null)
[19] string0 (null),string1 (null),string2 (null),string3 (null)
[20] string0 (null),string1 (null),string2 (null),string3 (null)
[21] string0 (null),string1 (null),string2 (null),string3 (null)
[22] string0 (null),string1 (null),string2 (null),string3 (null)
[23] string0 (null),string1 (null),string2 (null),string3 (null)
[24] string0 (null),string1 (null),string2 (null),string3 (null)
[25] string0 (null),string1 (null),string2 (null),string3 (null)
[26] string0 (null),string1 (null),string2 (null),string3 (null)
[27] string0 (null),string1 (null),string2 (null),string3 (null)
[28] string0 (null),string1 (null),string2 (null),string3 (null)
[29] string0 (null),string1 (null),string2 (null),string3 (null)
[30] string0 (null),string1 (null),string2 (null),string3 (null)
[31] string0 (null),string1 (null),string2 (null),string3 (null)
[32] string0 (null),string1 (null),string2 (null),string3 (null)
[33] string0 (null),string1 (null),string2 (null),string3 (null)
[34] string0 (null),string1 (null),string2 (null),string3 (null)
[35] string0 (null),string1 (null),string2 (null),string3 (null)
[36] string0 (null),string1 (null),string2 (null),string3 (null)
[37] string0 (null),string1 (null),string2 (null),string3 (null)
[38] string0 hh,string1 hh,string2 bright,string3 bright
[39] string0 hh,string1 hh,string2 bright,string3 bright
[40] string0 hh,string1 hh,string2 bright,string3 bright
[41] string0 hh,string1 hh,string2 bright,string3 bright
[42] string0 (null),string1 (null),string2 (null),string3 (null)
[43] string0 (null),string1 (null),string2 (null),string3 (null)
[44] string0 (null),string1 (null),string2 (null),string3 (null)
root@build:~/test/arrinit$ 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章