搜索
查看: 771|回复: 4
打印 上一主题 下一主题

关于结构体数组中的数不能参与计算的问题

[复制链接]
楼主
发表于 2014-3-18 19:08:26 | 显示全部楼层
哎呀呀 发表于 2014-3-18 19:27
那如何初始化结构数组?
还有三维数组我也一直在采用这种方法初始化,有什么好的方法吗?谢谢

数量少就一个个去写

struct foo one = {1, 2, 'a'};
struct foo two = {2, 3, 'b'};
……

主要原因是,手写容易出错,少了一个大括号就会出错。另外编译器对这东西的实现不怎么好(不怎么符合ISO C的标准,因为标准关于初始化这段本身就太复杂了)
数量多了肯定不能写成字面值了,一般从外部读取


  1. for(i=0; i<len_x; ++i)
  2.   for(j=0; j<len_y; ++j)
  3.      scanf("%d %d %d", &bar[i][j].a, &bar[i][j].b, &bar[i][j].c);
复制代码


3维数组应该在设计上加以避免
我印象中没有遇到过3维数组最为自然的情况
沙发
发表于 2014-3-18 19:25:02 | 显示全部楼层
struct stu abc[2][3]={
    {{1,2,'a'},{2,3,'b'},{3,4,'c'}},
    {{10,20,'d'},{20,30,'e'},{30,40,'f'}}
    };

建议不要用这么复杂的初始化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表