• 结构体学习


    struct是结构体关键字 

    我们用C语言中通常都是用关键字来定义类型变量。例如我们的整型变量,int book;是用整型关键字定义出来的。同样的,struct book同样是一个类型,不过我们叫他结构体。我认为的结构体的作用,无外乎是将一些毫无关系的变量整合到一起,来达到产生联系。整合到一起就是把它封装在结构体中。

    下面我举个例子:

    1. #include
    2. typedef struct Student
    3. {
    4. char name[30];
    5. short age;
    6. char sex[10];
    7. }Stu;
    8. typedef struct Book
    9. {
    10. char bookname[20];
    11. short price;
    12. Stu m;
    13. }B;
    14. int main()
    15. {
    16. //用typedef关键字将结构体类型重定义一个名字叫Stu
    17. //Stu就是类型名,类似int
    18. Stu s= {"溟有常青木",18,"男"};
    19. printf("%s\n",s.name);
    20. printf("%d\n",s.age);
    21. printf("%s\n",s.sex);
    22. //这是麻烦一点的写法
    23. printf("打印学生信息\n");
    24. struct Student m = {"张三",19,"男"};
    25. printf("%s\n", m.name);
    26. printf("%d\n", m.age);
    27. printf("%s\n", m.sex);
    28. printf("打印书的结构体信息\n");
    29. B b1 = { "C语言程序设计",55,m};
    30. printf("%s\n", b1.bookname);
    31. printf("%d\n", b1.price);
    32. printf("%s\n",b1.m.name);
    33. return 0;
    34. }

    411544b7364642f6991617c5274c5eba.png

    通过结构体,我们将姓名,年龄,性别这些本来毫不相关的变量,把它封装在结构体中,让别人更加清楚的描述一个物体。

    被封装在结构体中的变量可以是整型变量,数组,指针,结构体。

    这里调用封装在结构体中的变量,用结构体名.变量名的形式,当然,你也可以用指针。

    1. #include
    2. typedef struct Student
    3. {
    4. char name[30];
    5. short age;
    6. char sex[10];
    7. }Stu;
    8. typedef struct Book
    9. {
    10. char bookname[20];
    11. short price;
    12. Stu m;
    13. }B;
    14. int main()
    15. {
    16. //用typedef关键字将结构体类型重定义一个名字叫Stu
    17. //Stu就是类型名,类似int
    18. Stu s= {"溟有常青木",18,"男"};
    19. Stu student = { "阿西吧",18,"男" };
    20. printf("%s\n",s.name);
    21. printf("%d\n",s.age);
    22. printf("%s\n",s.sex);
    23. //这是麻烦一点的写法
    24. printf("打印学生信息\n");
    25. struct Student m = {"张三",19,"男"};
    26. printf("%s\n", m.name);
    27. printf("%d\n", m.age);
    28. printf("%s\n", m.sex);
    29. printf("打印书的结构体信息\n");
    30. B b1 = { "C语言程序设计",55,m};
    31. printf("%s\n", b1.bookname);
    32. printf("%d\n", b1.price);
    33. printf("%s\n",b1.m.name);
    34. Stu* stu = &student;
    35. printf("打印阿西吧信息\n");
    36. printf("%s\n",stu->name);
    37. printf("%d",(*stu).age);
    38. return 0;
    39. }

     

     

  • 相关阅读:
    docker打包x86镜像包的详细步骤
    linux文件操作
    【PAT甲级 - C++题解】1049 Counting Ones
    【从测试小白到管理】这几点让我终身受益,没有人永远18岁,但永远有人18岁......
    java基础10题
    通过sls采集k8s集群上的服务日志
    (2022版)一套教程搞定k8s安装到实战 | RBAC
    python一些操作的笔记
    第二章 第二十五节:文件操作:with和复制
    用三智者交易策略澳福加减仓轻松盈利,就是这么厉害
  • 原文地址:https://blog.csdn.net/qq_62381986/article/details/133682526