手记

【备战春招】第2天-C01结构体及相关

  • 课程名称:Linux C语言结构体
  • 课程链接:https://www.imooc.com/learn/409
  • 章节名称:
    • 第2章:预处理的那些事
      • 2-4 typedef
    • 第3章:结构体是干吗滴
      • 3-1 结构体的声明与定义
      • 3-2 结构体的初始化和引用
      • 3-3 结构体指针
  • 讲师姓名:雷过就跑
  • 时间:2023-02-08 22:30

课程内容

  • 与宏相近的语法typedef
    • 作用是给变量类型起别名
    • 宏定义是不必理会语法的,但typedef是C语言正式语句,必须以分号结尾
    • typedef int *p定义一个变量p,是一个指向整型的指针类型
      • p q = NULL;定义一个q变量,类型是p,也就是类型名p,也就是指向整型的指针,即q是一个指针变量名
    • 在预处理阶段,typedef定义的内容不会替换代码对应位置内容
    • 在实际编程过程中,使用typedef来为自定义类型起别名,如
      • typedef unsigned long size_t,定义一个类型名为size_t,这个类型实质上就是unsigned long
      • typedef struct Student {...} Stu_t;给一个结构体定义别名
  • 结构体
    • struct structName {...};定义结构体
    • struct structName structVariable;定义一个结构体变量,定义的同时就已经分配好空间,其中struct关键字可以省略不写
    • 还可以在定义结构体同时,定义一个结构体变量,但不推荐这种写法
    • 也可以定义无名的结构体,在定义后面直接定义变量,这种方法就无法定义其他结构体变量啦
  • 结构体成员初始化
    • {结构体内部成员1的值, 结构体内部成员2的值, 结构体内部成员3的值, ...}
    • 结构体变量.结构体内部成员1 = 1
  • 结构体数组
    • 还是使用{}来为数组赋值,大括号内部值的个数为:数组长度 * 结构体内部成员数量
    • 还可以使用大括号内部嵌套大括号来赋值,这种方法,可以不用为所有内部成员赋值,但只能为有顺序的前几个赋值,后几个可以不赋值
  • 结构体指针
    • struct structName *p = &someStructNameVariable;
    • (*p).内部成员1来调用,只是这种写法很难看
    • p->内部成员1来调用,看起来很优雅,管这种调用叫指向运算符
    • 结构体指针指向结构体数组
      • struct structName *p = structArrayName,数组名就是指向数组地址的指针
      • p++指针指向数组中的下一个元素

学习心得

这部分学习起来,还可以自己来优化代码,有成就感

0人推荐
随时随地看视频
慕课网APP