救救孩子

qq_52596910 2020-12-08 06:34:00
求助。。
...全文
246 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljhm 2020-12-12
  • 打赏
  • 举报
回复
引用 1 楼 六道佩恩 的回复:
在大括号前加一个显示转换——(person),如果不支持,在工具——编译选项,编译或链接命令中,添加开启C99或C11标准,如-std=c11


对,复合字面值C99开始支持了。

    

x[0] = (struct person){"Alice", 18};

//or, 指定成员初始化
x[0] = (struct person){.name="Alice", .num=18};

qzjhjxj 2020-12-08
  • 打赏
  • 举报
回复
供参考:
typedef struct Person{
        int  num;
        char name[20];
        int  sex;
        char group;
        int  score1;
        int  score2;
        int  score3;
}person;


int main(int argc, char* argv[])
{
        person x[3] = {
          {1,"Alice",0,'A',90,77,95},
          {2,"Tony" ,1,'B',92,78,93},
          {3,"Tom"  ,1,'C',87,90,78}
        };
        int i;
        for(i=0;i<3;i++)
            printf("%d %s %d %c %d %d %d\n",x[i].num,x[i].name,x[i].sex,x[i].group,x[i].score1,x[i].score2,x[i].score3);
        system("pause");
        return 0;
}
chxchxkkk 2020-12-08
  • 打赏
  • 举报
回复
我的映像中赋值不能这样写,初始化的时候才可以这样用吧。 写成 person x[3]={{...},{...},{...}}; ...是x[0],x[1],x[2]的内容。这样试试看
自信男孩 2020-12-08
  • 打赏
  • 举报
回复
赋值有问题,这样的赋值一般是在初始化的时候,否则需要一个结构体成员一个结构体成员的赋值;

person x[3] = { {}, {}, {}};
把三个成员的初始化放在一起;

要么就是

x[0].num = 1;
strcpy(x[0].name, "Alice");
...
下面的一样
ahui5252 2020-12-08
  • 打赏
  • 举报
回复
person x[3] = { {xx,xx,xx,xx},
{xx,xx,xx,xx},
{xx,xx,xx,xx}, };
可以这样初始化
六道佩恩 2020-12-08
  • 打赏
  • 举报
回复
在大括号前加一个显示转换——(person),如果不支持,在工具——编译选项,编译或链接命令中,添加开启C99或C11标准,如-std=c11

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧