第八节 复合类型

结构体:

关键字:struct

struct student{
        short age;
        char name[20];
        int *ptr;
        };

上面这条语句是一条结构体类型的声明语句

1,结构体内部元素的访问可以通过两种形式:
    A、结构体变量的名字.具体元素的名字
    B、结构体指针->具体元素的名字

2,结构体的初始化
    A、根据数组的套路来初始化数据
    B、指定元素的名字来进行初始化

3,结构体作为参数在传入函数的时候,最好用地址,这样的效率更高

4,结构体的大小:
    由于系统是32位(所以内存的分析是最大以32位为分析的基数),
    根据结构里面的最大元素的大小决定基数为多少(如果超过32位则按照32位分析):
    根据基数作为分析内存的规划,如果一片内存所剩的量不够下一个变量使用,
    则丢弃后面的内存,重新申请一个新的

5,总结;除开“相同类型的结构体变量可以相互整体赋值”外,其他情况下,
   不能整体引用,只能对各个成员分别引用;

6,总结: ->只用于结构体指针访问成员; .点只用于结构体名访问成员;

7,传递地址,使用结构体指针接收,用于访问不做修改;const限制修改,

8,结构体作为参数传递;不能成功修改实参,只能访问;(形参结构体是实参的副本,修改副本不影响实参)

9,结构体作为参数,修改结构体并且返回类型也为结构体;达到修改的目的;

10,传递地址,使用结构体指针接收,用于修改;不使用const限制修改,

11,在结构体中使用字符数组和字符指针来存储字符串的区别
    字符数组:字符串的存储在结构体内部的;
    结构体总分配总的字节的内存给相应的字符串

    字符指针:这里的字符串是存储在编译器认为存储字符串常量的任何地方,
    这个结构体中存放的只有地址而已,只分配8分字节;
    结构体不为字符串分配任何内存存储空间,
    因此访问时是一个未赋值的地址,这时候在输入的时候存在了一个潜在的危险;
    因此我们最好是使用字符数组来存储字符串

    (相关结构体知识网址:)
    https://blog.csdn.net/zw1996/article/details/53844585)

共用体/联合体

关键字:union

1,跟结构体的语法结构一模一样
2,共用体里面元素共享同一片内存
3,共用体的大小由里面占内存最大的那个元素所决定    

跟结构体不一样的地方在于内存共享

共用体的应用场景:
    互斥的数据,为了节省内存,但是又要有通用性的情境下,我们选择定义共用体

枚举:又称枚举常量

关键字:enum
    1,枚举里面的元素的值得初始化是按照默认+1的原则赋值的,
       某人首元素从0开始计算
    2,枚举里面的元素都是整型数据
    3,枚举定义完之后的数据都是常量,不可变
    4,枚举类型用来将一类事物统一在一起代表的时候引用
    5,枚举类型说到底就是个整型

typedef:

专门用来自定义一种变量的名字

语法格式:
    typdef   普通变量的定义语句
    这个时候,后面的这个普通变量的名字就变成对应的这个变量的类型的代号

引用的使用注意的地方
    1,在typedef定义的类型后面一般要加   _t

    2,引用的时候的语法你只需要按照普通变量的声明语句方式就可以
    3,typedef定义的类型不能和其他类型组合定义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值