目录
第一章:C语言基础
C的特点:
C语言是一种面向过程的程序设计语言。
.C文件的构成:
1、预处理命令(头文件引入#include、宏定义或符号常量定义#define、.h的条件编译#ifndef)
2、全局变量(定义在函数外部的变量),其他文件引用的时候用extern+数据类型+变量名;
3、注释:行注释(//)、块注释(/**/)
4、函数:函数声明(函数首部+;)+函数定义(代码部分) 声明放.h,定义放.c,分文件
常量和变量:
变量顾名思义可以改变其值,常量不能改变比如用const修饰符,或者符号常量。
常量存在常量区,变量存在栈区。
关键字:
C语言关键字有32个,不用死记硬背,标识符命名时不要和关键词重名
标识符:
命名规则:以字母数字下划线组成,不能以数字开头,不能和系统函数、关键词、系统标识符重名
数据类型:
Int(4字节)、char(1字节)、float(4字节)、double(8字节)、void(不确定)、unsigned int(4字节)
八进制:0开头 16进制:ox开头 2进制:0和1组成
第二章:输入输出以及运算符
1、标准输入输出:
<Stdio.h>:printf /scanf getchar/putchar(输入是显示的,可以输入多个但只读第一个,要清空输入缓存区fflush(stdin))
<conio.h>:getch/putch(输入不显示,一次只能输入一个)
2、运算符:
算术(+-*/)、逻辑(&& | | !)、关系(> = ,<=)、位(& | ~)、赋值(=)、复合赋值(+=,-=)
第三章:控制语句
1、选择语句:
if语句(单分支,双分支,多分支)、switch-case语句(break、default)
2、循环语句:
for(知道具体循环次数) while(不知道循环次数) do{}while(循环体一定会循环一次)
3、其他语句:
break(退出循环)、continue(结束本次循环,继续新的循环)、return(结束函数)、exit(结束程序)
第四章:数组
1、普通数组:
一维数组(地址连续,访问:数组名(索引))、二维数组(多个一维数组组成) 保存同一类型数据的集合
2、字符数组:
用于保存字符串,要预留一个位置保存’\0’空字符。
字符操作函数:<string.h>:strcmp、strcpy、strlen 字符拼接:sprintf() 字符拆分:scanf()
Gets():自动把\n转化成\0, puts():自动把\0转化成\n.
第五章:函数
1、函数参数设计:
根据实际需要设置函数参数
2、函数参数作用:
数据传递(按值传递、按地址传递)。数据传递的方式有(全局变量、返回值、参数传递)
3、分文件:
声明放.h,定义放.c。.h中的条件编译(#ifndef、#define、#endif),需要哪个头文件就引入哪个。
第六章:结构体
1、struct name_t{数据成员};
可以用typedef对name_t进行重命名,struct name_t也是一种数据类型,数据成员可以有不同的数据类型
2、内存计算:
遵循内存对齐原则,可以把占用内存小的数据成员放在前面。
3、访问:
用.运算符访问数据成员,可以对一整个结构体变量进行赋值,也可以用memcpy(内存拷贝)
第七章:指针
1、指针就是地址
2、数组作为函数参数写法:char [10]、char []、char *name
3、*号后面跟地址,代表取地址中的内容,&为取地址, 指针可以进行++ --,内存偏移量跟数据类型有关
4、行指针:int (*p)[10](二维数组的指针) p[i]=*(p+i)
5、指针数组 int *p[10] 数组里面的元素都是地址
6、Void *:无类型指针,可以接收任意类型的指针,但是不能直接赋值给其他确定类型的指针,要类型强转
7、结构体指针变量:访问用->。
第八章:链表
1、链表的好处
节点删除不用做大量的数据偏移
动态分配空间,不会造成空间浪费(闲置) 用malloc动态开空间,free释放
2、链表的节点
节点包括:数据域和指针域,数据域保存数据,指针域保存下一节点的首地址
3、单向链表和通用链表
单向链表只能存一种链表数据,有多种的时候需要多条链表,因此可以用通用链表,通用链表其中的数据域是void*,可以存其他类型的指针变量。
第九章:文件
1、fopen(“文件名”,”打开方式”):
功能:打开文件,打开方式:r+,w+
2、fwrite(写入数据的首地址,写入的数据块大小,写入的数据块个数,操作的文件指针)
功能:向文件写入数据
3、fflush(文件指针)
功能:刷新文件缓存区的内容到文件
4、rewind(文件指针)
功能:将光标定位到文件头
5、fseek(文件指针,偏移量,从哪里偏)
功能:对光标进行偏移,第三个参数有0(SEEK_SET)、1(SEEK_CUR)、2(SEEK_END)
6、fread(读入数据存的首地址,读入数据块大小,读入的数据块个数,操作的文件指针)
功能:从文件中读取数据
7、fclose(文件指针)
功能:关闭文件