站内推广和站外推广的区别,惠州网络营销公司,网站开发人员职能,易企推共用体 union 共用体名 { 成员列表; //各个变量 }; //表示定义一个共用体类型 注意#xff1a; 1.共用体 初始化 --- 只能给一个值#xff0c;默认是给到第一个成员变量的 2.共用体成员变量辅助 共用体用的数据最终存储的 --- 应该是最后一次给到的值。 但是只能…共用体 union 共用体名 { 成员列表; //各个变量 }; //表示定义一个共用体类型 注意 1.共用体 初始化 --- 只能给一个值默认是给到第一个成员变量的 2.共用体成员变量辅助 共用体用的数据最终存储的 --- 应该是最后一次给到的值。 但是只能影响到 自己数据类型对应的空间中的数据 3.可以判断大小端 4.实际用途 a.节省空间 b.进行数据转换 192.168.1.169 //ip本质是个 32位的数值 5.共用体的大小 --是成员变量中最大的那个成员的大小 struct stu { char name[20]; int sno; float score; } struct teacher { char name[20]; int Tno; float salary; } struct member { char name[20]; int no; union { float score; float salary; }d; } 6.共用体类型可以是函数参数也可以是函数返回值类型 共用体结构体类型定义出来之后 a.定义变量 b.定义数组 c.定义指针 d.做函数参数返回值类型
枚举: 一枚一枚列举 逐个列举 如果一个变量只有几种可能的值则可以定义为枚举类型。 所谓“枚举”是指将变量的值一一列举出来 变量的值只限于列举出来的值的范围内。 eg: //从键盘输入1~7 打印出对应的英文的星期 1 ~ Monday 幻数 魔数 声明枚举类型用enum 开头。例如 enum weekday { sun, mon, tue, wed, thu, fri, sat };
enum //关键词 ---枚举
enum 枚举类型名 { sun, //名字 --- 代表一个值 --- 符号常量 mon, tue, wed, thu, fri, sat };
1 ~ 7
注意 1.枚举 提高了代码可读性 2.枚举 本质上是int类型 枚举 与 整型 类型兼容 3.不足 因为枚举类型 --- 本质上是个整型类型 所以枚举类型的变量的值并不能真正限定在指定的哪些值范围中 4.枚举类型 可以做函数 形参 和 返回值 定义数组也可以本质上就是整型数据 练习: 无人机 无人机的状态 0 --flying 1 --stop 2 --holding 从键盘输入0~2 打印无人机的状态 -------------------------------------------------
链表 数据结构: 数据的组织形式 (逻辑上理解的形式)
数组: int a[10] {1,2,3,4,5,6,7,8,9,10}; //连续性有序性单一性 数据组织形式 ---会决定使用数据的算法
选择排序:
for (i 0; i len-1; i) { for (j i1; j len; j) { if (a[j] a[i]) { 交换 } } }
struct stu[n] {};
n 30 数组: //顺序表 优点: //随机访问 方便 缺点: 增加数据 不方便 删除数据 不方便 链表:
链式的数据表
狗链 //找数据 优点: 增加 删除数据很方便 缺点: 找数据不大方便 计算机中: 计算机如何体现链式数据结构 [数据1] [数据2] 存放链式数据的结构: 节点 [数据|另外一个节点指针] [数据1|指针] //节点 [数据2|指针] [数据3|指针] [数据域|指针域]
学生信息
节点: struct Node { //数据域 struct stu s; //指针域 struct Node *p; //指针类型 };
//一个节点 数据结构对应算法 --- 操作
1. 2.增加数据 方便 3.删除数据 方便 操作: 1.创建一个链表 -- 空链表 //有头链表 --可以更方便的处理链表 //无头链表 c语言阶段: 有头 单向链表 空链表: 特点: 只有头节点 并且头节点的指针域 为NULL //相当于是尾节点
strcut Node head {0,NULL}; struct Node *p head; 2.插入 创建一个新的节点 节点链接起来
//尾插 思路: s1.创建一个新的节点 struct Node *pNew malloc(sizeof(struct Node)); //放在了堆区 // s2.找到尾节点 struct Node *p head; //此时p在头节点 while( p-next ! NULL ) { p p-next; //让p指向下一个节点 } s3.链接到尾节点后面 p-next pNew; pNew-next NULL; //尾节点 void pushBack(struct Node *head) { s1.创建一个新的节点 struct Node *pNew malloc(sizeof(struct Node)); //放在了堆区 // s2.找到尾节点 struct Node *p head; //此时p在头节点 while( p-next ! NULL ) { p p-next; //让p指向下一个节点 } s3.链接到尾节点后面 p-next pNew; pNew-next NULL; //尾节点 } int length(struct Node *head) { //统计有效节点的个数 } //头插 void pushFront(struc Node *head,int data) { //1.创建新节点 pNew //2.链接 pNew-next p-next; p-next pNew; }