杂记之C语言之结构(一)

聚合数据类型:数据和结构。

结构是一些值的集合。这些值称为它的成员。但一个结构的各个成员可能具有不同的类型。

而数组是相同类型的元素的集合,它的每个元素是通过下标引用或指针间接访问来选择的。

数组元素可以通过下标访问,这只是因为数组的元素的长度相同。而在结构中,由于一个

结构的成员可能长度不同。所以不能使用下标来访问它们。相反,每个结构成员都有自己

的名字,它们是通过名字访问的。

结构声明:

在声明结构时,必须列出它包含的所有成员。这个列表包括每个成员的类型和名字。

struct tag {member-list} variable-list;

所有可选不放呢不能全部省略,它们至少要出现两个。
注意末尾符号;

struct {

int     a;

char b;

float c;

}x,y[20],*z;

【警告】这三个声明被编译器,当作是两种截然不同的类型,即使他们的成员列表完全相同,

也不同相互赋值。例如:

z=&x;是非法的。

也就可以这样声明:

struct SIMPLE{

        int     a;

       char  b;

       float   c; 

};

这个声明为创建任何变量,SIMPEL现在是一个制造不同形状“甜饼”的机器。

struct  SIMPLE x;

struct  SIMPLE  y[20], *z;//变量名。

也可以使用typedef创建一种新的类型。如下所示

typedef struct{

       int       a;

       char   b;

       float   c; 

}Simple;

【注意】:现在Simple是个类型名,而不是一个结构标签,所以后续的声明可能像下面这个样子。

Simple   x;

Simple  y[20],*z;

结构成员还可以是其他结构,如下例子:

struct COMPLEX{

    float     f;

    int     a[20];

    long *lp;

    struct   SIMPLE  s;

    struct   SIMPLE  sa[20];

    struct   SIMPLE  *sp;

};

一个结构的成员的名字可以和其他结构的成员的名字相同,所以这个结构的成员a并不会与struct SIMPLE s的

成员a冲突。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值