结构体的赋值问题????

andywiliang 2008-05-08 12:05:11
例1
struct person
{ char name[20];
int count;
}leader[3]={"Li",0,"Zhang",0,"Wang",0};



例2
struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu[3]={{10101,"李林",'M',18,87.5,"103北京路"},{10102,"张奋",'M',19,99,"130上海路"},{10104,"王敏",'F',20,78.5,"1010中山路"}};

例1为什么赋值给数组leader[3]里的元素leader[0],leader[1],leader[2]不用{}分开呢???
而例2的就要用{}分开????
...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryfdizuo 2008-05-08
  • 打赏
  • 举报
回复
尽量不要,这样子初始化,
中间会产生临时对象的,
xkyx_cn 2008-05-08
  • 打赏
  • 举报
回复
用{}分开是为了程序的可读性,减少错误的可能性

[Quote=引用 5 楼 Treazy 的回复:]
引用 4 楼 andywiliang 的回复:
leader[3]={"Li",0,"Zhang",0,"Wang",0};
这句是根据什么符来分开的呢?????


顺序排列了,如果有一个值少掉就会出错了!
[/Quote]
Treazy 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 andywiliang 的回复:]
leader[3]={"Li",0,"Zhang",0,"Wang",0};
这句是根据什么符来分开的呢?????
[/Quote]

顺序排列了,如果有一个值少掉就会出错了!
andywiliang 2008-05-08
  • 打赏
  • 举报
回复
leader[3]={"Li",0,"Zhang",0,"Wang",0};
这句是根据什么符来分开的呢?????
wuyu637 2008-05-08
  • 打赏
  • 举报
回复
这样不是更好吗?
只是支持多种初始化的方法而已。
liyuzhu_1984 2008-05-08
  • 打赏
  • 举报
回复
你在自己机器上把例2 的{}去掉 看看不就知道了么
Treazy 2008-05-08
  • 打赏
  • 举报
回复
最好都用{}分开
lovelyday 2008-05-08
  • 打赏
  • 举报
回复
还是分开的好,看起来清晰,像例1这种简单的情况,不分开也不错
peswe 2008-05-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 andywiliang 的回复:]
leader[3]={"Li",0,"Zhang",0,"Wang",0};
这句是根据什么符来分开的呢?????
[/Quote]
系统会根据数组leader[3]中元素的个数3来分配!~
zhoujie99 2008-05-08
  • 打赏
  • 举报
回复
例2可以写成例1一样,都没有{}隔开也行,只是看起来不清晰而已,
同理,例1也可以和例2一样,每个变量都用{}隔开,看起来更清晰
结构体赋初值是在内存按类型大小存放先后赋值的,所以不能少写漏写或者多写

69,371

社区成员

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

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