文章目录
一、C语言基础
1、引入依赖文件
#include<依赖文件名称> //例如stdio.h
2、主函数入口
int main(){
//程序执行模块
return value;//程序返回值
}
3、变量定义
int 变量;//整型白变量
short 变量;//短整型
long 变量;//长整型
long long 变量;//长长整型
char 变量;//字节类型
float 变量;// 浮点型
4、输入输出
printf("提示字段");//控制台输出
scanf("规范字符",存储变量地址);//控制台输入
5、基本运算符号
+:加法
-:减法
*:乘法
/:除法
%:模运算
math.sqrt():开方
^:乘方
&:取地址符
二、C语言的选择结构
1、三元表达式
在这里插入代码条件?条件为真时执行:条件为假时执行;
2、IF结构:
if(condition){
//condition 为true时执行的代码
}
3、IF-ELSE结构:
if(condition){
//condition 为true时执行的代码
}else{
//condition为false时执行的代码
}
4、多重IF结构:
if(condition1){
//condition1为true时执行的代码
}else if(condition2){
//condition2为true时执行的代码
}else if(condition3){
//condition3为true时执行的代码
}else{
//上述条件不满足时执行代码
}
5、嵌套IF结构
if(condition1){
//执行condition1为true时执行的语句
if(condition2){
//condition1和condition2均为true时执行的语句
}else{
//condition1为true且 condition2为false时执行的语句
}
if(condition3){
//condition1和condition3为true时执行的代码
}else if(condition4){
//condition1和condition4为true时执行的代码
}else if(condition5){
//condition1和condition5为true时执行的代码
}else{
//condition1为true且condition3、condition4和condition5为false时执行的代码
}
}
6、Switch_case结构
Switch (condition){
case value1:
//condition值等于value1时,执行代码
break; //退出Switch-case循环
case value2:
//condition值等于value2时,执行代码
break; //退出Switch-case循环
case value3:
//condition值等于value3时,执行代码
break; //退出Switch-case循环
default:
//上述的value值与condition值不同
break; //退出Switch-case循环
}
三、C语言的循环结构
1、for循环
for(初始化变量;边界条件;变化量){
//当初始化变量条件满足边界条件时,执行该模块代码
}
2、while循环(当型循环)
while(条件){
//当满足条件时,就执行该模块代码
}
PS:
while(1){
//死循环
}
3、do-while循环(直到型循环)
do{
//运行该模块,直到不满足条件为止
}while(condition)
四、C语言数组
1、数组定义及其初始化
数组的建立就是操作开辟一个连续的内存空间,其元素之间按照下标的递增紧密的排列在内存的连续空间里。
//静态初始化
int num[1000]={0};//[]内为数组个数,{}内为定义数组的数据,数组下标是以0开始的
2、数组类型
不同于变量类型,数组也有对应的数组类型。
int 数组名[初始个数]={初始值值之间用,号进行分割};//整型数组
char 数组名[初始个数]={初始值值之间用,号进行分割};//字符数组
double 数组名[初始个数]={初始值值之间用,号进行分割};//双精度数组
3、动态建立数组
对于静态数组,开发者需要每次进行内存空间估计,当内存不够,会导致数组溢出,因此动态建立数组的方法应运而生。
//首先初始化数组
int num[]={};
//对数组内存空间进行动态开辟
num = (double *) malloc(n * sizeof(double));
五、C语言函数及其函数模块化
1、函数作用
对于一个,我们会对一些指令序列会进行多次运行,为了能够提供程序运行效率以及减少开发者的工作量,因此提出函数的概念。
2、public 与privite
我们从单词的字面的意思来理解,public:公众的,private:私有的。这两个变量分别定义公共模块与私有模块。公共模块的意思就是,该模块的生存域为整个工程。私有模块就是指该模块的生存域为该工程文件。
3、函数模块定义
返回值类型 模块名称(传入参数){
//该函数模块执行代码模块
return 返回值;//若定义返回值类型为void,则不需要返回值
}
4、函数模块调用
建立函数模块为了能够运算得到结果,因此,我们需要在主函数中调用我们定义的模块。
int main(){//主函数
接收函数值变量=函数名称(传入函数变量);
}
六、C语言指针
1、指针的定义及其作用
有句俗话就是:C语言的核心就是指针。那么什么是指针呢?简单来说,指针就是一个存储一个内存地址的容器,指向内存空间的某个区域。
2、指针类型
和变量类型类似,指针也有很多类型
int *pa,*pb;//定于int指针
char*pa;//定义char指针
float *pf;//定义float指针
struct*next //结构体指针
3、申明指针与释放指针
使用指针时,需要进行事前申请。注意分配malloc()函数要和free()函数成对出现。
int *pi = (int* ) malloc (sizeof(int));
七、数据结构定义(C语言、C++)
1、顺序表定义(静态)
#define MaxSize //定义线性表的最大长度
typedef struct{
ElemTyoe data[]; //顺序表元素
int length; //顺序表当前长度
}sqlist;
2、顺序表定义(动态)
#define InitSize //定义线性表的最大长度
typedef struct{
ElemTyoe *data; //顺序表元素
int MaxSize,length; //顺序表最大长度和个数
}sqlist;
C语言初始化语句
L.data=(ElemType *)malloc(Sizeof(EleType)*InitSize);
C++语言初始化语句
L.data=new ElemType[InitSize];
3、定义单链表节点
typedef struct LNode{
ElemTyoe data; //数据域
struct LNode *next; //指针域
}LNode,*LinkList;
创建头结点
L=(LinkList)malloc(sizeof(LNode));
创建新节点
L=(LNode*)malloc(sizeof(LNode));
4、双链表节点定义
typedef struct DNode{
ElemTyoe data; //数据域
struct DNode *prior,*next; //指针域
}DNode,*DinkList;
创建头结点
L=(DinkList)malloc(sizeof(DNode));
创建新节点
L=(DNode*)malloc(sizeof(DNode));
5、静态链表节点定义
#define MaxSize //定义线性表的最大长度
typedef struct{
ElemTyoe data[]; //数据域
int next; //指针域
}SLinklist[MaxSize];
6、栈的节点定义
#define MaxSize //定义线性表的最大长度
typedef struct{
ElemTyoe data[MaxSize]; //存放栈中元素
int top; //栈顶元素
}SqStack;
7、链栈的节点定义
typedef struct LinkNode{
ElemTyoe data; //数据域
struct LinkNode *next; //指针域
}*Linkstack;
8、队列的节点定义
#define MaxSize //定义线性表的最大长度
typedef struct{
ElemTyoe data[MaxSize]; //存放队列中元素
int front,rear; //存放数据的先后关系
}SqQueue;
9、链队列的节点定义
typedef struct {
ElemTyoe data; //数据域
struct LNode *next; //指针域
}LinkNode;
typedef struct {
LinkNode *front,*rear;
};
10、二叉树节点定义
typedef struct BiTNode{
ElemTyoe data; //数据域
struct BiTNode *lchild,*rchild; //指针域
}BiTNode,*Bitree;
11、线索二叉树
typedef struct ThreadNode{
ElemTyoe data; //数据域
struct ThreadNode *lchild,*rchild; //指针域
int ltag,rtag;
}ThreadNode,*Threadtree;
12、双亲法存储结构
#define MAX_TREE_SIZE
typedef struct{
ElemType data;
int parent;
}PTNode;