程序设计C语言(4)-创新互联
- 引入: 离散——>相同数据类型的数组——>数据类型各不相同的结构体
- 结构的定义:结构的定义描述了组织形式,没有分配内存空间
struct 结构名
{数据类型 成员名1;
数据类型 成员名2;
......
数据类型 成员名n;
};
可以嵌套定义
- 结构变量的定义:<存储类型>
- struct 结构名 结构变量名;分配内存空间
- 结构变量的使用形式:
- 结构变量名.成员名
- 不能将结构作为整体参加数据处理,而是对各个成员项数据进行操作和运算。
- 结构变量的初始化:
- struct student wang ={“wang wu”,20190101,‘F’,85,80};顺序、个数、数据类型对应相同
- 结构数组
- <存储类型>struct 结构名 结构数组名[元素个数] [={初值表}];相同结构体变量的数组
- 初始化:struct student man[] ={
{“王伟”,20,‘八区231’,423201},
{“张强”,23,’三区102‘,423210}
}; - 访问方式:man[0] , man[0].age
- 结构指针
- <存储类型>struct 结构名 *结构指针名 [=初始地址]
- struct student *ptr =man[0];
- 访问方式
- 成员访问符 ’.':(*结构指针名).成员名
(*man).name 注意: “.” 的优先级高,所以“ *man ”要括起来
- 指针运算符 ‘->’ :结构指针名->成员名
man->name
- 成员访问符 ’.':(*结构指针名).成员名
- 结构体变量在函数间传递
- 4种方法:①结构体变量的成员作参数②结构体变量作参数③结构变量地址作参数④返回值传递结构体
- 复杂结构体的设计:研究底层对象的属性、逐层向上整合、逐层嵌套结构体
应用:过程控制、参数检测、数据通信
创新互联建站是一家专注于成都做网站、网站设计与策划设计,平乡网站建设哪家好?创新互联建站做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:平乡等地区。平乡做网站价格咨询:13518219792意义:压缩存储,减少占用的宝贵空间,嵌入式程序设计
限制:严格依赖于机器硬件,可移植性相对较差
定义:以二进制位为单位的字段组成的数据;一个字节中按位划分不同的区域,即位段
位字段结构:类型 [成员名]:位数;
注意:①无名位字段指定长度:依次占用同一个字中的对应位数
②无名位字段指定长度为0:依次占用同一个字中的同一字节下的剩余所有位数,其后一个成员从下一字节开始存放
③一个位段必须存储在同一存储单元下(按字划分即为同一个字中)
④可以单独对成员项作运算,但是不能作 &取地址运算访问方式:成员访问 ‘.’ 、指针访问’->‘
- 定义:不同数据类型的数据使用相同的存储区域,这种数据结构类型称为联合体
- 理解:union中的每个成员都从union的首地址开始存放,任意时刻只有一个成员真正的占用了内存,成员间相互排斥所以和结构体的唯一区别:内存是否共用
- union的大小:与大的成员项大小相等,如:position[10]
- union的使用:使用union中的成员时,数据类型必须对应当前时刻的数据类型,定义什么类型的成员,则只能输出该类型的成员。(编译通过,但结果错误)
- 作用:中断寄存器值提取、大小端判断、键值提取
- 枚举类型:限定了取值范围的整形类型,属于基本数据类型
- 构造类型:数组、结构体、位字段、联合
- 定义: enum 枚举类型名 {枚举元素1,枚举元素2,…,枚举元素n};
enum color {black,blue,red,green,white}; enum color col; col = red;
- 初始化:隐式、显式; 显式申明时,后一个元素从前一个下标开始
- 输出:枚举元素等价于整数。如果按%d输出元素,则输出0~len-1的编号
- 作用域:局部枚举则在函数内部使用;全局枚举则在整个程序中使用。
- 注意:枚举常量使用大写字母标识,枚举常量不能重新赋值。
- 引入:对已定义的数据类型赋予别名,使用别名来定义变量
- 定义: typedef<类型说明><新别名1,新别名2…>;
typedef int INTEGER; INTEGER a,b;
- 好处:
- 简化书写量
tepedef struct tagComplex{double real; double imag;}COMPLEX; COMPLEX c1,c2;
- 突显变量的实际意义
tepedef int LENGTH, WIDTH; LENGTH x; WIDTH y;
- 可移植性
- 简化书写量
- typedef 与 #define 的区别
- #define 属于预处理语句,在程序编译前将所有INTEGER 替换为 int ,形成新的代码
- typedef 属于编译时,不是简单字符串替换,可以将数组类型、函数指针定义为新别名
- 特点:可动态分配的数据结构
- 组成:头指针、节点
- 基本操作:链表建立、节点插入、节点删除、链表删除
- 概念
- 数据流:C语言将文件看作顺序字节流,每个文件用文件结束符EOF结束
- 缓冲区:在程序执行时,所提供的额外内存,暂存数据提高效率
- 文件类型:二进制文件、文本文件
- 二进制文件:占用空间小、速度快、数据保存不会丢失有效位
- 文本文件:占用空间大、速度慢、便于对字符进行操作
- 存取方式:顺序存取、随机存取
- 顺序存取:按照文件的逻辑地址顺序进行存取,常用于文本文件
- 随机存取:用户以任意次序请求某个记录,在请求时给出起始存取地址,常用于二进制文件
- 文件类型指针 FILE
- 基本操作:打开、定位、读写、关闭
打开: fopen ( )
关闭:fclose ()
数据块读写函数:fread () 、fwrite ()
格式化读写函数:fscanf ( ) 、fprintf ( ),
字符读写函数:fgetc () 和 fputc ()
字符串读写函数 fgets () 和 fputs ()
定位: rewind () 和 fseek ()
rewind: void rewind(FILE *fp) 重置文件位置指针到文件开头
fseek: int fseek(FILE *fp,long offset,int whence)
①改变文件位置指针的位置,成功返回0,失败返回-1
②offset表示移动的字节数,要求为long型保证文件长度>64KB时不会出错,如果offset为常量,则初始化时后面加’L’,如:long offset = 123L;
③whence表示从文件的什么位置开始计算位移量 - BMP位图文件
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章题目:程序设计C语言(4)-创新互联
文章起源:http://abwzjs.com/article/jpgcg.html