一、C语言基础知识点
1、机器码(运行效率、访问硬件能力)
2、C语言之父:丹尼斯-里奇
3、C语言语法标准:K&RC、c89、c99、c11(微软)
4、C语言语法版本:GNUC+ASCI C (GUNC = ASCI C +扩展)
5、gcc:100%c89 + 部分c99
二、数据类型(基本数据类型、输入输出)
1、为什么要有数据类型:
2、数据类型分类:
3、定义变量(注意事项 编码规范)
a)变量的可读性:形容词_名词
b)循环变量:int i;int k;
c)变量的类型决定了什么?
d) 内存的特点:
e) 内存如何编址呢?
f) 如何衡量这个内存的大小呢?
g) 为什么计算机用二进制存储,不用十进制?
4、基本数据类型需掌握的知识点:
a)各种数据类型的字节长度(变量占用内存的大小)int num = 5;
b)数值溢出的危害;
c)解决数值溢出的对策;
d)保存地址;
e)数组的长度
f)字符串长度:int strlen(char *src);不统计‘\0’
二进制:
十进制转二进制;
二进制转十进制;
八进制:
十进制转八进制;
十六进制:
十进制转十六进制;
笔试题:
g)各种数据类型的取值范围? (计算机是以补码形式保存数据, 为了解决+0, -0问题)
5、变量和常量:
1、变量的三大特点
2、作用域:可见范围
3、生命周期
4、存储区域
5、堆和栈的使用原则
6、语言类型转换
类型转换缺点
什么情况下发生隐式类型转换?
隐式类型转换的规则
7、格式化输出:
a)printf函数的使用
b)printf函数格式控制
标志:
示例:
示例:
转义字符:
c)printf函数缓冲区:
d)printf函数使用技巧:
e)其他输出函数的使用:
8、格式化输入:
a)scanf函数的使用 :
b)scanf函数注意要点:
c)scanf留 下来的垃圾:
d)其他输入函数:
三、基本语句(条件语句、循环语句、多路分支、goto语句)
1、条件语句:
a) if语句:
2、循环语句:
3、多路分支:
a)使用规则:
b)流程图:
c)注意事项:
d) switch VS if:
e) break VS continue:
四、数组(-维数组、二维数组、多维数组)
1、数据认知:
2、如何使用数组:
3、一维数组:
4、二维数组:
5、三维数组:
五、指针(一 维指针、多维指针、数组指针、函数指针、函数指针组)
1、指针的作用:
a)谈谈你对指针的理解? (指针是什么? )
b)地址为什么分为不同类型? (不同类型的指针变 量保存不同步长的地址)
c)指针变量和指针的类型:
d) 指针占用内存空间大小:
e)变量的指针与指针变量:
2、野指针
a)什么是野指针?
b)野指针产生的问题?
c)野指针的注意事项:
d)如何避免野指针?
3、内存空间分配:
4、malloc、 free、 calloc、 reallc:
a) malloc:
b) free:
c) calloc:
d) realloc:
六、内存管理(内存泄漏)
1、硬件(静态存储) VS内存(动态存储)区别?
2、为什么所有的编程都关注内存管理?
3、编程过程中,内存管理主要做什么?
4、内存错误的类别:
5、内存泄漏的原因:
6、如何防止内存泄漏?
7、C语言防止内存泄漏的方法:
8、如何检查内存泄漏?
七、函数(函数的声明、定义、调用、库函数的使用(字符串处理函数、时间函数、随机数函数) )
1、什么是函数?
2、为什么要是用函数?
3、函数语法:
a) 函数三要素:
b)函数的使用形式:
c)函数的调用过程:
d)传值(传实参变量名) VS传地址(传实参变量的地址)
e)传出参数、传入参数(大多数函