• C语言学习笔记-自定义类型


    1. 类型和变量有啥区别?

    只能对变量赋值、存取和运算,而不能对一个类型赋值、存取和运算。在编译时,对类型是不分配空间的,只对变量分配空间。

    1. 如果指针p指向一个结构体变量stu,以下3种用法等价:

      • stu.成员名(如stu.num);
      • (*p).成员名(如(*p).num);
      • p -> 成员名(如p -> num);
    2. 什么是共用体类型?

    有时想用同一段内存单元存放不同类型的变量。例如,把一个short型变量,一个char型变量,和一个float型变量放在同一个地址开始的内存单元中。以上3个变量在内存中占的字节数不同,但都从同一地址开始存放,也就是使用覆盖技术,后一个数据覆盖了前面的数据。这种使几个不同的变量共享同一段内存的结构,称为“共用体”类型的结构。
    定义共用体类型的一般形式为:

    union 共用体名{
        成员表列
    } 变量表列;
    

    举例来说:

    union Data {
        int a;
        char b;
        float c;
    } data_1, data_2;
    

    我想到的使用场景是:结构体变量的某个成员属性待定,用上union可以避免重新增加一个成员属性或者重新定义一个结构体类型。

    1. 枚举类型,声明枚举类型的一般形式为:
    enum 枚举名 {
        枚举元素列表
    } 变量名列表;
    

    举例来说:

    enum color {
        red, blue, dark
    } my_color, your_color;
    
    1. typedef#define

    #define是在预编译时处理的,它只能作简单的字符串替换,而typedef是在编译阶段处理的

    更多的区别:https://blog.csdn.net/xing1314/article/details/2336269

  • 相关阅读:
    C对字符串的部分操作
    <string> <string.h>
    最常见的HTTP错误
    python面试题
    玩转type类型(牛逼克拉斯 )
    django路由系统之反向生成url
    django事物回滚
    django中admin路由系统工作原理
    django中的django admin插件
    ajax跨域资源共享
  • 原文地址:https://www.cnblogs.com/zgglj-com/p/12637520.html
Copyright © 2020-2023  润新知