Autoleaders控制组李佳旭——c语言结构体学习笔记

1枚举

1.1常量符号化

首先我们要知道,符合(字母)是相对更好理解的,它可以清晰的表达程序的意思。使用常量符号化可以增加程序的可读性。
在这里插入图片描述

1.2enum函数

  • 函数的形式enum+类型名字+{e0,e1…en};

  • ·枚举类型通常只用大括号里的名字,它们就是常量符号,它们的类型为int,值从0到n。

  • 枚举计数(小技巧)
    在这里插入图片描述

    2结构体

    2.1理解

    • 结构体算是我们自定义的一个新数据类型,与传统的数据类型int, char, float, double 等相似。
    • 而结构体就相当于一个模具,我们可以利用结构体变量来使用这个模板。

    2.2结构体的定义

    • struct 函数名称 变量名称
    • struct 函数名称 变量名称={成员1,成员2};
      像这样类型的被称为结构体
      例子
      struct date today{
      int month; 
      int day;
      int year;
      };//切记;不能忘记,前面是一个整体。
      struct date d1,d2;
    

    2.3结构体形式声明

  • 首先,结构体也算是一个函数,用法上与函数基本一致,都需要先在头文件的位置声明或者直接写出还是的内容。
    第一种

      struct date today{
      int month; 
      int day;
      int year;
      };
      struct date d1,d2;
    

    d1,d2中均有month, day, year三个成员。
    第二种

   struct date today{
  int month;
  int day;
  int year;
  }d1,d2;

d1,d2中均有month, day, year三个成员。
第三种

struct {
 int month;
 int day;
 int year;
 }d1,d1;
  • 这个为无名结构,必须声明其变量,否则struct为无用结构体。
  • d1,d2中均有month, day, year三个成员。

2.4结构体初始化

与数组类似,结构体使用点号.获取单个成员。
然后通过={}的形式来输入struct在这里插入图片描述

2.5结构运算

  • 要访问整个结构,直接用结构变量的名字
  • 对于整个结构,可以做赋值、取地址,也可以传递函数参数。
d1=(struct date){10,28,2022};//相当于d1.month=10,d1.day=28,d1.year=2022.
d1=d2;//相当于d1.month=d2.month,d1.day=d2.day,d1.year=d2.year.

数组无法完成这些运算。

3结构与函数

3.1指向结构的指针

  struct date today{
int month;
int day;
int year;
}d1;
struct date *p =&d1;\\需要用&进行取地址

(*p).month = 12;
p->month = 12;\\为了方便我们输入,用->来表示结构函数中的成员

3.2结构指针参数

使用方式:先传入一个指针,在这个内层函数中对指针进行一定的操作。之后通过我们定义的函数返回指针。最后在外部函数中,通过指针使用这个变量。(也就是说通过指针参数,我们把最内层的变量带到了最外层的main函数中)
在这里插入图片描述

4结构中的结构

4.1结构数组

形式如下

struct date d1[100];
struct date []={10,28,2022};

相对与数组中每一个成员的类型都为我们定义的结构体

4.2嵌套结构

#include <stdio.h>
struct point{
  int x;
  int y;
  };
  struct date{
    struct point p1;
    struct point p2;
    };
    struct date r;//这个就是嵌套类型的变量
 里面有r.p1.x;r.p1.y;r.p2.x;r.p2.y。

5类型函数

  • typedef(自定义类型函数)
  • 作用:给已经有的函数定义新的名字
    如:typedef int length;(特别注意typedef后面最后一个单词才算是新的名字,毕竟typedef是用来简化程序的,这样才能改善程序的可读性)
    - 这样 length就可以代替int出现在变量的定义上了
    如:length a,b;

6 联合(union)

  • union和struct的使用非常相似,他们的区别就在于union里的变量会占据同一个空间,空间的大小取决于union中占空间最大的变量。
  • 因为union的输入输出在同一个空间上,新输入的数据会覆盖原来的数据,这导致在输出上有一点难度。不过union在不同类型的输入和输出以及所占的空间等方面优势明显。
    使用形式如下
union arr{
    char a;
    int b;
    long c;
    long long d;
    };
    ```
  
       
       



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值