C语言结构体使用方法

定义

关键字:struct

struct 结构体名

{
    结构体所包含的变量或数组
};                             //结尾为分号

  1. struct stu{

  2. char *name;  //姓名

  3. int num;  //学号

  4. int age;  //年龄

  5. char group;  //所在学习小组

  6. float score;  //成绩

  7. };

定义结构体变量

既然结构体是一种数据类型,那么就可以用它来定义变量。例如:

struct stu    stu1, stu2;

定义了两个变量 stu1 和 stu2,它们都是 stu 类型,都由 5 个成员组成。注意关键字struct不能少。

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

  1. struct stu{

  2. char *name;  //姓名

  3. int num;  //学号

  4. int age;  //年龄

  5. char group;  //所在学习小组

  6. float score;  //成绩

  7. } stu1, stu2;

理论上讲结构体的各个成员在内存中是连续存储的

逐一赋值

  1. stu1.name = "Tom";               // 结构体名.成员名=值

  2. stu1.num = 12;

  3. stu1.age = 18;

  4. stu1.group = 'A';

  5. stu1.score = 136.5;

整体赋值(整体赋值仅限于定义结构体变量的时候,在使用过程中只能对成员逐一赋值,这和数组的赋值非常类似)

  1. struct{

  2. char *name;  //姓名

  3. int num;  //学号

  4. int age;  //年龄

  5. char group;  //所在小组

  6. float score;  //成绩

  7. } stu1, stu2 = { "Tom", 12, 18, 'A', 136.5 };

结构体数组

.定义

  1. struct stu{

  2. char *name;  //姓名

  3. int num;  //学号

  4. int age;  //年龄

  5. char group;  //所在小组

  6. float score;  //成绩

  7. }class[5];               //数组名和长度

.赋值

  1. struct stu{

  2. char *name;  //姓名

  3. int num;  //学号

  4. int age;  //年龄

  5. char group;  //所在小组

  6. float score;  //成绩

  7. }class[5] = {

  8. {"Li ping", 5, 18, 'C', 145.0},

  9. {"Zhang ping", 4, 19, 'A', 130.5},

  10. {"He fang", 1, 18, 'A', 148.5},

  11. {"Cheng ling", 2, 17, 'F', 139.0},

  12. {"Wang ming", 3, 17, 'B', 144.5}

  13. };

.变量引用和修改

结构体数组的使用,例如,获取 Wang ming 的成绩:

class[4].score;

修改 Li ping 的学习小组:

class[0].group = 'B';

生命的意义在于学习,学习让生活变得精彩
原文地址:https://www.cnblogs.com/gougouwang/p/11401450.html