1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c语言字符结构数组初始化 C语言结构体数组初始化问题

c语言字符结构数组初始化 C语言结构体数组初始化问题

时间:2019-04-05 19:14:32

相关推荐

c语言字符结构数组初始化 C语言结构体数组初始化问题

C语言结构体数组指定初始化器时,下面的三种方法,只有第三种可以,但是第一,二种,我看不出语法上哪错了,编译器DEVc++会报错

[Error] C99 designator 'num_insur' outside aggregate initializer

查了不少资料,但还是找不到...

烦请园友帮忙看看

代码如下:

include

include

include

define LEN 20

define COUNT2

define NUM_LEN 10

struct name

{

char Fname[LEN];

char Mname[LEN];

char Lastname[LEN];

};

struct insurrance

{

char num_insur[NUM_LEN];

struct name names;

};

void input1(int count, struct insurrance arr_insur[]);

void input2(int count, struct insurrance *pinsur);

int main(void)

{

struct insurrance arr_insur[COUNT] =

{

{

//第一种:不可以

.num_insur = "12345678",

{"sheng", "M.", "shuai"}

//第二种不可以

//.names.Fname = "sheng",

//.names.Mname = "M.",

//.names.Lastname = "shuai"

},

{

.num_insur = "12345678",

.names = {"shi", "T.", "long"}

//.Fname = "shi",

//.Mname = "",

//.Lastname = "long"

}

};

//第三种可以

//struct insurrance arr_insur[COUNT];

//strcpy(arr_insur[0].num_insur, "123456789");

//strcpy(arr_insur[0].names.Fname, "sheng");

//strcpy(arr_insur[0].names.Lastname, "shuai");

//strcpy(arr_insur[0].names.Mname, "S");

//

//strcpy(arr_insur[1].num_insur, "123456789");

//strcpy(arr_insur[1].names.Fname, "shi");

//strcpy(arr_insur[1].names.Lastname, "long");

//strcpy(arr_insur[1].names.Mname, "S");

//printf("%s", arr_insur[1].names.Mname);

input1(COUNT, arr_insur);

input2(COUNT, arr_insur);

return 0;

}

void input2(int count, struct insurrance *pinsur)

{

int i;

for(i = 0; i < count; i++)

{

if(strcmp((pinsur+i)->names.Mname, "") > 0)

{

printf("%s,%s %s. -- %s\n", (pinsur+i)->names.Fname, (pinsur+i)->names.Lastname, (pinsur+i)->names.Mname, (pinsur+i)->num_insur);

}else

{

printf("%s,%s -- %s\n", (pinsur+i)->names.Fname, (pinsur+i)->names.Lastname, (pinsur+i)->num_insur);

}

}

}

void input1(int count, struct insurrance arr_insur[])

{

int i;

for(i = 0; i < count; i++)

{

if(strcmp(arr_insur[i].names.Mname, "") > 0)

{

printf("%s,%s %s. -- %s\n", arr_insur[i].names.Fname, arr_insur[i].names.Lastname, arr_insur[i].names.Mname,arr_insur[i].num_insur);

}else

{

printf("%s,%s -- %s\n", arr_insur[i].names.Fname, arr_insur[i].names.Lastname, arr_insur[i].num_insur);

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。