鱼C论坛

 找回密码
 立即注册
查看: 3518|回复: 4

关于结构体嵌套赋初值问题!

[复制链接]
发表于 2011-7-27 21:00:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1.         /*家庭成员属性*/
  2.         struct family_member_attribute{
  3.                          int                age;                        /*年龄*/
  4.                          int         stature;                /*身高*/
  5.                          char        name[10];                /*名字*/
  6.                        
  7.         };
  8.        
  9.         /*我姐姐的家庭*/
  10.         struct my_sister_family{
  11.                          struct family_member_attribute *her_husband;        /*丈夫*/
  12.                          struct family_member_attribute *her_self;                /*她自己*/
  13.                          struct family_member_attribute *her_baby;                /*她孩子*/
  14.         };
  15.        
  16.        
  17.         /*我的家庭*/
  18.         struct my_family{
  19.                          struct family_member_attribute *father;                                                                /*爸爸*/
  20.                          struct family_member_attribute *mother;                                                                /*妈妈*/
  21.                          struct family_member_attribute *mine = {21,175,"jon"};                                /*我*/
  22.                          struct my_sister_family *sister;                                                                        /*姐姐*/
  23.         };
复制代码
这里边可能有错误,比如说我想给 *mine赋初值该怎么来赋值,可能我那个是错的,
可不可以这样:
  1. struct my_family *family;
  2.           family -> mine= {21,175,"jon"};
复制代码


貌似这样不可以啊!

那这样呢!我只给mine里边的一个变量赋值呢:
  1. struct my_family *family
  2.           family -> mine -> name ="jon";
复制代码
有点头疼
对于赋初值我还是搞不懂,如果是一个结构体还可以,结构体多了我就懵了!

再比如给这个:
  1. struct my_family *family
  2.           family -> sister -> her_selt -> name;
复制代码


这个这个又该怎么来赋初值呢?
望高手指教!



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-7-28 21:06:49 | 显示全部楼层
{:7_159:}不给力啊!没人帮忙啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-20 20:57:39 | 显示全部楼层
struct my_family{

19.                         struct family_member_attribute *father;                                                                /*爸爸*/

20.                         struct family_member_attribute *mother;                                                                /*妈妈*/

21.                         struct family_member_attribute *mine = {21,175,"jon"};                                /*我*/

22.                         struct my_sister_family *sister;                                                                        /*姐姐*/

23.        };
你的这个是属于结构体的申明,要知道结构体申明中是不可以给成员变量赋值的哦!!
只有在主函数或者是其它函数调用它的时候才可以赋值!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-20 20:58:50 | 显示全部楼层
要赋值,先定义一个结构体变量,然后给它赋值!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-10 02:57:09 | 显示全部楼层
本帖最后由 ytrfamli 于 2011-9-10 05:57 编辑

更动:看到LZ的Linux程序我想关於指针的说明我就不用班门弄斧了(惭愧了),
拿掉前面的额外说明.

LZ代码里面用的都是结构指针,但是没有真正给出结构变量,
这样是无法给结构初值的.
我感觉LZ想要达到的程序目标里也用不到指针,
所以,以下给一个简单的例子

带有子结构的结构给初值可以用巢状的方式,如下

  1. struct attribute
  2. {
  3.     int     age;     
  4.     int     stature;
  5. };

  6. struct my_sister
  7. {   
  8.     struct attribute     her_husband;   
  9. };

  10. struct my_family
  11. {
  12.     struct attribute     father;
  13.     struct my_sister     sister;   
  14. };

  15. struct my_family MFL= {{12,23},{ {45, 16} } };
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 20:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表