结构体

结构体


作用:用几个基本数据类型,组合成一个新的数据类型

结构体是一种数据类型,是一种创建变量的模板,编译器不会为它分配内存空间,就像 int、float、char 这些关键字本身不占用内存一样;结构体变量才包含实实在在的数据,才需要内存来存储。


  • 定义新的数据类型(结构体):
//常用定义方法
struct stu {
   char *name;  //姓名
   int num;  //学号
   int age;  //年龄
};
/**定义一个结构体的意义:
声明了一种新的数据类型,
*/
  • 定义新类型的变量:
// struct stu stu1,stu2;
struct stu stu1,stu2;

定义新类型时:

  1. 定义结构体的同时定义结构体变量
//定义结构体的同时定义结构体变量:
struct stu{
    char *name;  //姓名
    int num;  //学号
    int age;  //年龄
} stu1, stu2;
  1. //只需要 stu1,stu2 两个变量,后面不需要再使用结构体名定义其他变量
//只需要 stu1、stu2 两个变量,后面不需要再使用结构体名定义其他变量
struct{  //没有写 stu
    char *name;  //姓名
    int num;  //学号
    int age;  //年龄
} stu1, stu2;
  1. 定义时整体赋值
struct{
    char *name;  //姓名
    int num;  //学号
    int age;  //年龄
} stu1, stu2 = { "Tom", 12, 18, 'A', 136.5 };
//结构体数组在定义的同时也可以初始化,例如:
struct stu{
    char *name;  //姓名
    int num;  //学号
    int age;  //年龄
    char group;  //所在小组 
    float score;  //成绩
}class[5] = {//当对数组中全部元素赋值时,也可不给出数组长度:      class[] = {
    {"Li ping", 5, 18, 'C', 145.0},
    {"Zhang ping", 4, 19, 'A', 130.5},
    {"He fang", 1, 18, 'A', 148.5},
    {"Cheng ling", 2, 17, 'F', 139.0},
    {"Wang ming", 3, 17, 'B', 144.5}
}

结构体指针

struct stu *pstu = &stu1;

获取结构体成员

通过结构体指针可以获取结构体成员,一般形式为:

(*pointer).memberName

或者:

pointer->memberName
原文地址:https://www.cnblogs.com/alien-x/p/14176459.html