文章为博主复习中认为易忘、使用频率高、重要的知识,欢迎各位发现问题、提出纠正
- 文本文件:
(1)优点:一个字节对应一个字符,便于各种文本编辑工具查看和修改
(2)缺点:读写文件时,需要花费时间在内存的二进制数据与文件的ASCII码数据之间进行转化;
二进制文件:
(1)优点:不需要进行数据格式转换
(2)缺点不便于查看 - 缓冲文件系统(标准文件系统):通过缓冲区可以一次与磁盘交换一批数据,而不是每执行一次输入/输出就访问磁盘一次,这样可以减少对磁盘的实际读写次数,节省访问时间。一般缓冲区大小为512字节(即0.5KB),当缓冲区写满了512字节,操作系统自动将全部数据写到磁盘的一个扇区中,然后清空缓存区。
- FILE *fp;
fp = fopen(“文件名”,“文件打开方式”);
其中常用文件打开方式有:
- 常用文件函数:
- C语言源程序处理的完整过程:C源程序–>编译预处理–>编译–>连接–>执行。编译预处理命令以“#”开头,包括宏定义、文件包含和条件编译。
- 宏替换在程序运行之前完成,不占用运行时间,程序执行效率高(如果是作函数意义的宏,效果更明显,原本的函数调用时在程序运行时进行的,需要经过复杂的处理过程)
(1)无参数的宏定义:#define 宏名 字符串–>编译预处理会自动把源程序中出现的宏名用“宏体”去替换,称为宏替换,字符串称为宏体
(2)有参数的宏定义:#define 宏名(形参列表) 字符串–>编译预处理时,不仅要对宏名进行展开,而且展开时要用实参去替换对应的形参
- 有参数的宏定义中,整个宏体和每个形参最好用括号括起来,避免替换时出错,如
- 在宏定义的字符串中,可以使用已经定义过的宏名,在宏展开时将逐层替换,程序中双引号内与宏名相同部分不作宏展开
- 文件包含命令有两种使用格式:
(1)使用<>括号的文件一般是编译系统的头文件,预处理程序会直接到编译系统绑定的头文件目录中去查找
(2)使用“”引号的文件一般是用户编写的文件
文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件 - union 共用体名{
类型说明符 成员名1;
类型说明符 成员名2;
…
类型说明符 成员名n;}
定义共用体变量x后,系统会为它分配内存空间,按照共用体中最大成员所占用字节数来分配的。因为占用同一内存空间,修改一个成员的值,其他成员值也跟着改变。不能像初始化结构体变量那样对它进行初始化,如:
union data a={1,2,3}–>错误
- rand()函数用来生成随机数–>stdlib.h头文件中
system()函数–>stdlib.h头文件中
exit()函数–>stdlib.h头文件中
abs()函数–>math.h头文件中(求整数的绝对值,返回整数)
fabs()函数–>math.h头文件中(求浮点数的绝对值,返回浮点数) - enum 枚举名 {枚举元素列表};
enum 枚举名 变量列表;
变量的值只能取枚举中的元素。枚举元素在定义时就已经由系统自动分配了一个整数值,第一个枚举元素值为0,后面顺序+1,也可以人为修改;对于没有修改的枚举元素,其值在前一个基础上+1
- 枚举变量或者枚举常量的值输出都是整数,应该用整型格式说明符
- typedef定义已有类型的别名,别名与标准类型名一样
- 位段是指变量所占用的以位为单位的一块区域,位段不能单独定义,必须存在于结构体中。
- ’&‘位与运算符:
当对应的两个二进制位都为1时,运算结果该位才是1
可以用来将操作数的某些位清0(将该位与0进行与运算),或者保留某些位(将该位和1进行与运算) - ’|‘位或运算符:
当对应的两个二进制位都为0时,运算结果该位才是0
可以用来将操作数的某些位变成1(将该位与1进行或运算),或者保留某些位(将该位和0进行或运算) - ’^‘位异或运算符:
当对应的两个二进制位不同时,运算结果该位才是1
可以用来将操作数的某些位翻转(将该位与1进行异或运算),或者保留某些位(将该位和0进行异或运算) - ’~‘位反运算符:
将操作数按位取反,即0变1,1变0 - ’<<‘位左移运算符:
将操作数按指定位数左移,左移高位丢弃,右边空出的低位补0
左移n位,相当于该数乘以2n - ’>>‘位右移运算符:
将操作数按指定位数右移,右移低位丢弃,左边高位:
右移n位,相当于该数除以2n


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/171004.html