HelloWorld

ASM,C,LUA,LINUX(gentoo)
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

结构和联合

Posted on 2011-10-01 20:46  光铭  阅读(142)  评论(0编辑  收藏  举报

00.结构标记,结构成员,普通变量可以采用相同的名称,他们不会冲突。

01.结构的合法操作只有几种:作为一个整体复制和赋值,通过&运算符取地址访问其成员。其中,复制和赋值包括向函数传递参数和从函数返回值。结构之间不能比较。

02.有结构数组

03.结构声明可以嵌套,但是不能递归,一个包含自身实例的结构是非法的。但是可以包括指向自身的指针。

04.结构是一种普通类型,结构名不再是地址,只有数组名和函数名是地址。

05.结构的大小

#include<stdio.h>
int main(void)
{
	struct pt{
		double x;
		char y;
		};
	printf("%ld",sizeof(struct pt));
	return 0;
}
输出:
16

 注意这里输出不是8。选取最大的成员的长度*N,8*2=16

10.联合也是普通类型

11.联合的大小等于所有成员分量中最大的一个

12.联合的状态

union test key;

key.a=100;

key.b=4000;

那么联合中的值就只有一个,那就是key.b的值