C语言中的结构体


提示:以下是本篇文章正文内容,下面案例可供参考

一、从数组到结构体

  c语言中,数组是有序数据的集合并且数组中的每个元素必须是同一种数据类型,c语言中不能够将不同的数据类型放到同一个数组中。显然,c语言中数组数据类型存在不足,例如,我们想要存储一个学生的信息:年龄,性别,分数等不同的数据类型时候,使用数组是无法解决这样问题,而使用结构体这样的数据类型便可以很方便的搞定这样的问题。
  c语言中允许用户自己建立由不同种数据组成的组合型数据结构,它称为结构体(structure)。在其他的高级语言中也叫做记录(record)。
  结构体一种构造数据类型。一个结构体由若干个成员组成而且成员的数目必须固定(这一点和数组相同),成员的类型可以是不同种数据类型(如:int,char,float,或者是结构体类型等)。

二、结构体声明

  既然结构体是自己构造的数据类型,所以我们需要告诉编译器这种数据类型或‘模式’,也就是要声明结构体。声明结构体类型的一般形式为:

struct 结构体标识名
{
   
	类型名 1 结构成员名表 1;
	类型名 2 结构成员名表 2...
	类型名 n 结构成员名表 n;
};

其中struct是关键字,是结构体类型的标志。结构体标识名是可选参数,可有可无。
代码如下(示例):

struct date
{
   
    int year;
    int month;
    int day;
    float hour;
};

注意,此处的声明只是告诉编译器这种结构“模式”已经存在,编译器并没有为它开辟内存空间。只有定义了相应的结构体类型变量时,其才会占用内存。

三、结构体类型变量定义

1.紧跟结构体声明后进行定义

  这种定义方式是在结构体的声明后直接进行结构体类型变量的定义,如下代码所示:定义了结构体变量,结构体数组和指向结构体的指针。
代码如下(示例):

struct student
{
   
    char name[12];
    char sex;
    struct date birthday;
    float score[4];
} std,pers[3],* pstd;

2.紧跟无名结构体类型后进行定义

  由于结构体标识名是可选参数,可有可无,所有在结构体变量进行定义时,我们可以选择忽略结构体标识名ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值