1 拓展类型 结构体 2 3 结构体 4 1. 为什么需要结构体? 5 为了表示一些复杂的事物,而普通的基本类型无法满足实际要求 6 2. 什么叫结构体? 7 把一些基本类型数据组合在一起形成的一个新的复合数据类型,叫做结构体 8 3. 如何定义结构体? 9 //三种方式,推荐使用第一种 10 struct Student //第一个方式 11 { 12 int age ; 13 float score ; 14 char sex ; 15 } 16 17 //第二种方式 18 struct Student2 19 { 20 int age ; 21 float score ; 22 char sex ; 23 24 } st2 ; 25 26 //第三种方式 27 struct 28 { 29 int age ; 30 float score ; 31 char sex ; 32 } st3 ; 33 34 怎样使用结构体变量 35 赋值和初始化 36 定义的同时可以整体赋值 37 如果定义完之后,则只能单个的赋初值 38 39 如果取出结构体变量中的每一个成员[成员] 【重点】 40 1. 结构体变量名.成员名 41 2. 指针变量名 -> 成员名 (第二种方式更常用) 42 3. 指针变量名 -> 成员名 43 在计算机内部会被转化成(*指针变量名).成员名的方式来执行 44 所以说这两种方法是等价的 45 46 //例子: 47 struct Student 48 { 49 int age ; 50 float score ; 51 char sex ; 52 } ; 53 54 int main() 55 { 56 struct Student st = {80,66.6,'F'} ; 57 //初始化 定义的同时赋初值 58 struct Student * pst = &st ; 59 //&st 不能改成st 60 pst —> age = 88 ; //第二种方式 61 st.age = 10 ; //第一种方式 62 63 return 0; 64 } 65 66 1. pst -> age 在计算机内部会被转化成(*pst).age 67 没有什么为什么,这就是->的含义,这也是一种硬性规定 68 2. 所以pst->age 等价于 (*pst).age 也等价于st.age 69 3. 我们之所以知道pst->age等价于st.age 70 是因为pst->age是被转化成(*pst).age来执行 71 4. pst->age 的含义是: 72 pst所指向的那个结构体变量中的age这个成员 73 74 结构体变量和结构体指针变量作为函数参数传递的问题 75 推荐使用结构体指针变量作为函数参数来传递 76 结构体变量的运算 77 结构体变量不能相加 不能相减 也不能相互乘除 78 但结构体变量可以相互赋值 79 80 //例子: 81 struct Student 82 { 83 int age ; 84 char sex ; 85 char name ; 86 } ;//分号不能省 87 struct Student st1,st2 ; 88 st1 + st2 st1 * st2 st1/st2 都是错误的 89 st1 = st2 或者 st2 = st1 都是正确的 90 //举例 91 动态构造存放学生信息的结果体数组 92 动态构造一个数组,存放学生的信息 93 然后按照分数排序 94 95 枚举 96 什么是枚举 97 把一个事物所有可能的取值一一列举出来 98 怎么样使用枚举 99 100 枚举的优缺点 101 代码更安全 102 书写麻烦
[编程笔记]第九章 拓展类型
猜你喜欢
转载自www.cnblogs.com/lx17746071609/p/10216308.html
今日推荐
周排行