结构体数组初始化
2013-03-26 11:01
218 查看
结构体数组初始化
2010-06-1900:25
与诸君共进步|分类:其他编程语言
|浏览4497次
2010-06-1900:25
与诸君共进步|分类:
|浏览4497次
structcity{ charname[20]; doublepopulation; doublehousing; doubleave; }; citycities[2]; cities[0]={"A",10000,11}; cities[1]={"B",20000,11}; 为什么不行啊?
citycities[2]={{"A",10000,11},{"B",20000,11}};我知道这种赋值方法,但我就是想问问什么上面那种不行?别的数组是可以的啊
并不是aleda所说的原因,你可以试一下,即便不要结构体不要字符串
structcity
{
doublepopulation;
doublehousing;
doubleave;
};
citycities[2];
cities[0]={22,10000,11};
cities[1]={22,20000,11};
这里与结构体匹配了,但是同样不可能通过
原因是C\C++语法是禁止结构体这样赋值的!!
你提到了初始化,的确结构体数组初始化是可以通过大括号这种形式进行初始化的,但是一定要注意
类似这样的语句,不是初始化,而是重新赋值!
cities[0]={"A",10000,11};
cities[1]={"B",20000,11};
结构体数组的初始化在
citycities[2];
这一句的时候就完成了(初始化了cities[0]和cities[1]这两个元素)
所以正确的初始化格式应该如下:
citycities[2]={{"a",1,1,1},{"b",1,1,1}};
//还要注意一点,你问题处的成员少给了一个,结构体里有三个double,你只给了两
记住一点:
初始化永远是在定义的时候完成的,
(或者如果是类的成员变量,其初始化是在构造函数的初始化列表中完成,如果你学的是C,可以忽略)
非定义处的只有重新赋值,没有初始化!
/////////////////////////////////////////////
补充:别的数组?那也是不行的
相关文章推荐
- 多维数组、嵌套结构的初始化
- 结构体内不定长数组初始化,error: #1077: an initializer cannot be specified for a flexible array member
- 结构体数组初始化
- 转载部分代码,窗口点击问题,顺序,初始化数组,简单结构体
- 结构数组的初始化与遍历
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
- 结构体初始化中的数组赋值
- C++犄角旮旯之结构体数组初始化
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
- Delphi 初始化结构数组
- 尚硅谷第四课0722班 java-特殊流程控制 -数组元素的默认初始化-数组操作常见问题-Java内存的结构
- 结构体数组初始化
- C机顶盒开发实战常用初始化类型:数组、结构、指针
- java中对象数组初始化后使用
- 定义一个结构体数组并初始化时出现的问题
- 数据结构实验之数组三:快速转置
- char数组初始化
- 线性结构——连续存储【数组】的建立与实现
- 标准C的标记化结构初始化语法
- VB中用API判断数组为空或没有初始化