A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 瑜尚 中级黑马   /  2016-7-18 10:23  /  906 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在实际问题中,一组数据往往具有不同的数据类型;例如在学生信息登记表中,姓名为字符型,学号为整型或字符型,年龄为整型,性别为字符型,成绩为整型或实型。因为数据类型不同,显然不能用一个数组来存放。

在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。定义结构体的一般形式为:
struct 结构体名{
    成员列表
};
每个成员都是结构体的组成部分,有名字,也有数据类型,形式为:
类型说明符 成员名;
例如用结构体来表示学生信息:
struct stu{
    char *name;  //姓名
    int num;  //学号
    char sex;  //性别
    float score;  //成绩
};
结构体是一种构造数据类型(也称复杂数据类型),由若干不同类型的变量(数据)组成。每个变量都是结构体的成员(member),每个成员可以是基本数据类型,也可以是构造类型。
相应的,int、char、float 这些数据类型被称为基本数据类型。
上面的代码定义了一个结构体,名字为stu。stu由4个成员组成,分别为 name、num、sex、score。

注意大括号后面的分号;不能少。
结构体变量

结构体也是一种数据类型,可以用来说明变量。例如:
struct stu stu1, stu2;
定义了两个变量 stu1 和 stu2,它们都是 stu 类型,都由 4 个成员组成。注意关键字struct不能少。

stu 就像一个“模板”,定义出来的变量都具有相同的性质。也可以将结构体比作“图纸”,将结构体变量比作“零件”,根据同一张图纸生产出来的零件的特性都是一样的。

结构体的各个成员在内存中是连续存储的。stu1、stu2 的内存如下图所示:

你也可以在定义结构体的同时定义结构体变量:
纯文本新窗口
struct stu{
    char *name;  //姓名
    int num;  //学号
    char sex;  //性别
    float score;  //成绩
} stu1, stu2;
将变量放在结构体定义的最后即可。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马