黑马程序员技术交流社区

标题: 为什么结构体数组先定义,后给数组每个变量直接初始化不行 [打印本页]

作者: 我张云杰    时间: 2015-9-2 18:04
标题: 为什么结构体数组先定义,后给数组每个变量直接初始化不行
      struct  student{              char name[20];
               int  age;
      };
      struct  student d[2];
       d[0]={"liy",19};


       d[1]={"yn",19};
   有没有哪位高手知道为什么后两句不对?为什么非要进行强制转换才行?d[0]=(struct  student){"liy",19};
       d[1]=(struct  student){"yn",19};

作者: 小笼包    时间: 2015-9-5 19:52
结构体的赋值必须是struct student d = {“lili”,18},单个赋值的时候可以直接用点调用 d.name ="lili"的形式
作者: 我张云杰    时间: 2015-9-5 21:32
小笼包 发表于 2015-9-5 19:52
结构体的赋值必须是struct student d = {“lili”,18},单个赋值的时候可以直接用点调用 d.name ="lili"的 ...

我问的不是这个,是为什么有个强制转换符才能赋值
作者: 落水的兔子    时间: 2015-9-5 22:50
编译器不知道你给的值是什么类型,要在前面说明一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2