一些总结性的东西,放到这里算是个备忘吧~
一、基础知识
RISC CISC
CPU从存储器取值并执行
定义程序目标---设计程序---编写代码---编译---运行程序---测试、调试---维护升级
源代码---目标文件----可执行程序
二、C语言概述
注释方法: // /* */
预处理器指令
函数
三、数据格式
Long short char float double signed unsigned
实际应用中,往往会使用一个头文件进行数据类型的定义,
溢出:超出数据类型的表示范围
四、字符串与格式化输入输出
字符串:以空字符‘null’结尾
常量的两种定义方法:#define const ,往往使用大写名称
Printf()返回打印字符的个数,可以用来检测程序是否运行正确?
Scanf()返回成功获取的字符个数,
对于printf()而言,当打印浮点数据时,在参数传递时,float类型会自动转换为double型,所以只需要一种数据说明符%f %Lf代表long double
对于scanf()而言,说明符只需要和后面的变量保持一致即可,%f用于float %lf用于double
五、运算符,表达式,语句
操作数,左值,右值;
实参,传递给函数的具体值
形参,函数定义中的参量,本身并没有具体值
函数声明 函数调用 函数定义
六、控制语句循环
While
For
七、分支和跳转
If
Switch
八、字符输入\输出
Getchar() putchar()
输入输出重定向
九、函数
指针作为函数参数
函数定义:func(int* u, int * v ) 函数使用:func(&a,&b)
递归的一个用处:反序问题
十、数组,指针
数组的初始化
指针在未初始化时,指向一个未知的位置,此时不能使用
指针加一是对该指针增加一个存储单元的值。
函数中对数组的调用, 变长数组。 函数对数组的处理实际上是通过指针。
多维数组的概念, 指针的指针
多文件编译时头文件的写法。
十一、字符串和字符串函数
字符串是以’/0’结尾的字符数组,处理方式是利用指针
Gets() puts() fgets() fputs()
字符串处理函数string.h strlen() strcat() strcmp() strcpy()
字符串转换为数字stdlib.h stoi()
带参数的main函数
十二、存储类、链接和内存管理
Scop linkage storage duration
五种存储类
Malloc()free() calloc()
Constvolatile restrict
十三、文件输入、输出
主要是介绍了一些标准输入/输出函数,以及一些对文件的操作函数。
fopen(char*filename, “mode”) fclose(file *fp)
fprintf(file*fp, char *ch,var ) fscanf(file *fp,“”,)
fseek(file*fp, long offset,SEEK_SET/SEEK_CUR/SEEK_END) ftell(file*fp)
fwrite(constvoid *restrict ptr,size_t size, size_t nmemb,FILE *restrict fp)
fread(constvoid *restrict ptr,size_t size, size_t nmemb,FILE *restrict fp)
intsetvbuf(FILE * restrict fp, char * restrict buf, int mode(_IOFBF/_IOLBF/IONBF),size_t size);
十四、结构变量
结构声明structstr{}; 变量声明structstr var; 结构变量使用:var.mem1;
结构数组
嵌套结构
结构指针运算符-> (结构指针不能直接初始化,需要指向一个已经定义了的结
构变量?)
函数指针可以调用结构,可以调用结构指针,也可以返回结构,结构指针
malloc()在结构定义中的使用
伸缩型数组成员
Freadfwrite 读写结构型变量
Unionemun
typedef
函数指针,函数作为参数
十五、位操作
C语言提供对每一位的操作手段,主要是两种,位运算和位字段,主要用途是控制
硬件寄存器
前者是利用位运算符完成操作,后者是定义一种结构。结构成员占用以位为单位的
空间,通过访问结构成员来完成对位的控制。(C以unsign int 作为为字段的存
储单元,即32位。)具体细节暂不深入
十六、C预处理器和C库
预处理器指令
宏
一些常用函数
内联函数
可变参数的函数
十七、高级数据结构
链表队列二叉树
使用结构来表示数据。
ADT:Abstact datytypes
用法:用抽象化、一般化的语言区描述一种类型;设计函数接口;写细节代码。
面向对象语言使用ADT较为方便。
一种思想:构建不透明的接口,(黑盒子)