boytomato

c++

 

呵呵, struct 和union 的区别....

struct  student
{ char  name[ 10 ];
long  sno;
char  sex;
float  score[ 4 ];
}
 ;


main()
{ struct  student a[ 1 ];

  
long   sno ;
  
char  name[ 10 ];
  
float  score[ 4 ];
  
char  sex ;

printf(
" \n\n%d\n " , sizeof (a));
printf(
" %d\n " , sizeof (score) + sizeof (sex) + sizeof (name) + sizeof (sno));

}
输出的都是 31
 

typedef union student
{char name[10];
long sno;
char sex;
float score[4];
}
 Stu  ;


main()
{ Stu a[1];

  
long  sno ;
  
char name[10];
  
float score[4];
  
char sex ;

printf(
"\n\n%d\n",sizeof(a));
printf(
"%d\n",sizeof(score)+sizeof(sex)+sizeof(name)+sizeof(sno));

}

输出的为16,31,

结构和联合有下列区别:
1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合转只存放了一个被选中的成员, 而结构的所有成员都存在。
2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。

posted on 2006-09-22 11:42 boytomato 阅读(393) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(1)

随笔档案

c++

搜索

最新评论

阅读排行榜

评论排行榜