c语言结构体数组初始化(结构体数组初始化)

导读 并不是aleda所说的原因,你可以试一下,即便不要结构体不要字符串struct city{ double population; double housing; double ave;};c...

并不是aleda所说的原因,你可以试一下,即便不要结构体不要字符串struct city{ double population; double housing; double ave;};city cities[2];cities[0]={22,10000,11};cities[1]={22,20000,11};这里与结构体匹配了。

但是同样不可能通过原因是CC++语法是禁止结构体这样赋值的!!你提到了初始化,的确结构体数组初始化是可以通过大括号这种形式进行初始化的,但是一定要注意类似这样的语句。

不是初始化,而是重新赋值!cities[0]={"A",10000,11};cities[1]={"B",20000,11};结构体数组的初始化在city cities[2];这一句的时候就完成了(初始化了cities[0]和cities[1]这两个元素)所以正确的初始化格式应该如下:city cities[2] = {{"a", 1,1,1}, {"b", 1,1,1}}; // 还要注意一点,你问题处的成员少给了一个。

结构体里有三个double,你只给了两记住一点:初始化永远是在定义的时候完成的,(或者如果是类的成员变量。

其初始化是在构造函数的初始化列表中完成,如果你学的是C,可以忽略)非定义处的只有重新赋值。

没有初始化!/////////////////////////////////////////////补充:别的数组?那也是不行的你可以把别的数组这样赋值的代码发一下?。

免责声明:本文由用户上传,如有侵权请联系删除!