二级知识点归纳
一.数据类型:
1.分清常量与变量的区别
2.记住几种常用数据类型的名称与大小
3.清楚隐式转换和显式转换
4.清楚char型与int型互相转换原理
5.清楚各种表达式的数据类型
二.算术运算与表达式
1.清楚几种常用的运算符(尤其是sizeof,不要把它当成函数)
2清楚常用符号优先级
比如() [] .运算符优先级最高,正负自增自减非和取反运算符仅次于之,之后是乘除加减,左移右移,大小于,等于不等于,之后是三个位运算符,两个逻辑运算符,三目运算符,所有带有赋值意思的运算符排第14,仅高于逗号运算符
3.记住6个位运算符以及它们的算法(清楚计算机储存数据是以反码的形式,例如~0为-1)
&按位与,|按位或,^按位异或,~取反,<<左移,>>右移
4.记住所有的逻辑运算符的运算法则,非零即真法则,懒惰运算法则。
5.清楚宏定义#define的用法
6.清楚const常量的特点
7.常用的数学标准函数库(pow,fabs,sqrt,log,log10
三.键盘输入与输出
1.清楚printf与scanf的参数与返回值
2.清楚%s不会包含空格
3.清楚scanf不会读取换行符,而gets会
4.清楚什么叫格式化输入输出
四.循环部分
1.记住for,while,do...while三种循环,清楚do...while与其他两种的区别
2.清楚continue与break与goto的用法和区别
3.清楚case和default的用法
4.for循环里不可以定义新的变量(在c语言中不行,c99标准改了,不过我们大部分情况还是认为不可以)
5.for括号里的三个部分分别有什么作用,省去可能会有什么样的后果
五.函数
1.函数的定义
2.函数调用中变量的作用域和生存周期
3.递归法的理解与使用
4.函数的类型
六.数组
1.数组下表不可越界
2.数组名与指针的关系和区别(数组名其实就是一个指针,它几乎有指针的所有性质,只是它不能被赋值)
3.数组的定义与初始化的方法
4.二维数组储存数据的方式
七.指针
1.指针的概念与含义
2.传值调用函数与传址调用的区别
3.指针数组的定义与使用(不常用)
4.函数指针的定义与使用(不常用)
5.指针函数和函数指针的区别(不要求)
指针函数是指返回值是指针的函数,即本质是一个函数。函数指针是指向函数的指针变量。
6.指针与数组的运用(重要)
7.二维数组与一维指针和指针数组的运用(记住,别把这个和一维指针弄混)
一维指针可以指向二维数组,但是之后的操作都和一维数组的操作一样,因为二维数组在内存中储存形式和就是线性结构,而只有二维数组名和指向二维数组的指针数组名才能进行这种操作
int (*p)[3],a[3][3];//在这样的定义下才可以进行下面的表达式
((p+i)+j); //与p[i][j]等价,p为指向二维数组的指针数组名
((a+i)+j);//或者这样
//苏小红版c语言程序与设计第二版中,第300有详解,千万小心,别乱用!!!
八.字符串
1.字符串常用函数strlen,strcmp,strcat,strcpy的使用
2.清楚什么是字符常量
3.字符串的输入输出puts和gets,清楚他们的参数是什么(很多人看了gets就想当然的认为输入单个字符的函数是getc,其实不是,输入单个字符的函数是getchar,getc其实是文件操作函数,和fgetc一样)
4.如何向函数传递字符串
九.结构体,公用体,枚举
1.结构体,公用体,枚举的定义方式既用法
2.结构体,公用体的内存计算方式
3.typedef的用法
4.点运算符的用法
5.结构体指针的运用,->运算符的用法
6.链表(尽量了解,不要求)
十.文件的操作
1.文件指针的含义与运用
2.文件的打开和关闭
3.常用的文件操作函数,fgetc,fputc,feof,fgets,fputs,fscanf,fprintf,fread,fwrite。
4.fseek,rewind,ftell,fflush(尽量了解,不要求)
5.3个特别的文件指针stdin,stdout,stderr(不要求)在苏小红版c语言程序与设计第二版中,第405有详解