C语言之结构体

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

在开始C语言学习的时候,结构体是比较让人头疼的,因为它不是像基本的数据类型那样通俗易懂,其实结构体并不难理解,结构体的出现源于其本身的现实意义。比如现在要定义一个学生类型,基本数据类型当然不能够解决,所以就有了结构体。一般我们在定义数据结构时,结点的类型我们就定义为结构体,下面先写一个学生的结构体类型。

struct student
{
    char Name[];       //姓名
    char Number[];     //学号
    int Age;           //年龄
    char Sex;          //性别 'M' 男     'F' 女
}stu;

1、结构体声明

(1)匿名声明

struct
{
        int width;
        int height;
}block;

上面定义了一个匿名的结构体,有一个结构体变量block,这个block也是一种变量类型,可以看成是block类型。这种变量的属性就是它的成员变量width和height。若变量block是在全局域则block内的成员变量被默认初始化。这个变量是真实存在的,内存中是分配了空间的。

不同的匿名结构体变量不可以进行比较,因为它们的类型不同,比较是没有意义的。

(2)显示声明

struct Block
{
int width;
int height;
}block;

声明了一个struct Block结构体,还有一个这种结构体的block变量。可以定义一个它的对象,struct Block b1,

还有一种显示声明的形式:

typedef struct Block
{
    int width;
    int height;
}block;

和上面一样,只是在定义对象时可以简单的Block b1。

注意在定义结构体类型时可以在结构体内部使用结构体变量,但是要避免循环定义。

2、结构体赋值

typedef struct Person
{
    int Age;
    char Sex;
}person,per*;
person per1;

若Person定义在全局,则成员变量赋默认值。

初始化:person per1 = {10, ‘M’};

赋值:

person per1;
per1.Age = 10;
per1.Sex = 'M';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值