结构体与共同体

结构体

在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。定义结构体的一般形式为:

struct 结构体名 {
  成员列表// 类型说明符 成员名
};

每个成员都是结构体的组成部分,有名字也有数据类型。结构体是一种构造数据类型(复杂数据类型),由若干不同类型的变量(数据)组成。每个变量都是结构体的成员(member),每个成员可以是基本数据类型,也可以是构造类型。

结构体变量

结构体也是一种数据类型,可以用来说明变量。

struct stu stu1,stu2;

定义了两个变量stu1和stu2,他们都是stu类型,都是由4个成员组成。注意关键字struct不能少。结构体的各个成员在内存中是连续存储的

成员的获取和赋值

在C语言中,使用点号.来获取结构体中的一个成员,一般格式为:

结构变量名.成员名
代码示例#2.7.1-结构体
#include <stdio.h>
#define STU struct stu

int main() 
{
    STU {
        char *name; //字符串类型的姓名
        long id;
        char sex;
        float score;
    };

    STU stu1;
    stu1.name = "小明";
    stu1.id = 3120100888l;
    stu1.sex = 'M';
    stu1.score = 100;
     printf("Hello everyone! My name is %s, a naughty boy, but with 
         good scores(%.2f) and top No.(%d)!", stu1.name, stu1.score, stu1.num);
}