导图社区 Linux与C
这是一篇关于Linux与C的思维导图,必备Linux命令和C语言基础知识总结,包括环境安装、文件和目录相关命令、vi编辑器的使用/程序的编译和调试/数据的表示等内容。
这是一篇关于进程IO和网络(2)的思维导图,包括:目录操作、静态库和动态库进程、线程、线程间同步与互斥机制。
这是一篇关于进程IO和网络的思维导图,包含了行缓冲:对于终端操作采用的缓冲区,全缓冲:对于文件操作采用的缓冲区,无缓中:对于终端操作出错采用的缓冲区
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
Linux与C
C语言开发环境搭建
GCC编译器
GCC编译器的选项
GCC编译器的流程:1---预处理(#),2---编译,3---汇编,4---链接
GDB调试工具
数组
概念
数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素
一维数组的定义
一维数组是指只有一个下标的数组;<存储类型> <数据类型> <数组名>[数组元素的个数]
一维数组的引用
数组必须先定义,后使用;只能逐个引用数组元素,不能一次引用整个数组
一维数组的初始化
数组不初始化,其元素的值为随机值; 对static数组元素不赋初值,系统会自动赋0; 只给部分数组元素初始化,其他的为0; 当全部数组元素都赋初始值时,可以不指定数组长度
冒泡排序法--算法
二维数组的定义和初始化
数据类型 数组名[行数][列数]
字符数组和字符串
字符数组是元素的数据类型为字符类型的数组,它既具有普通数组的一般性质,又具有某些特殊性质
字符串函数
strlen( )
功能:计算一个字符串的长度; 参数:s:指定的字符串; 返回值:获取到的字符串的长度
strcpy( )
功能:将src复制到dest里面; 参数:dest:目的字符串 src:源字符串; 返回值:同dest
strcat( )
功能:拼接两个字符串,将src追加到dest后面; 参数:dest:目的字符串 src:源字符串; 返回值:同dest
strcmp( ) / strncmp( )
功能:比较两个字符串的内容是否一样; 参数:s1、s2:两个字符串 n:只比较前n个字节; 返回值:0 s1 = s2 <0 s1 < s2 >0 s1 > s2
指针
在C语言中,内存单元的地址叫做指针,专门用来存放地址的变量,称为指针变量
* 定义指针变量时起到标识作用,除此之外标识取一个指针变量的内容
& 取一个变量的地址
指针变量的运算
算术运算
int *p,+ p+2,- p-2,++,--,- p-q
关系运算
> < >= <= != ==
赋值运算
指针与一维数组
指针与一维数组主要研究的就是一维数组的数组名的作用域;一维数组的所有元素的操作都相当于地址的操作。
指针与二维数组
a :行指针,指向一行内容 &a:地址升级,指向整个数组 *a:地址的降级,将行指针降级为列指针
数组指针
指针数组
多级指针
const关键字
函数
函数是一个完成特定功能的代码模块,通过调用函数名,就可以执行内部的程序
函数的一般格式
<返回值类型><函数名称>(<形式参数说明>) { 语句序列 return (<表达式>); }
函数的传参方式
函数的参数说明
形参:函数定义时使用的参数说明 实参:实际传入函数内部的值
方式1:全局传参;
方式2:复制传参;
将实参的值传递给形参,不管形参如何改变,都不会影响实参的值 因为形参和实参不是用一个地址
方式3:地址传参
将实参的地址传递给形参,形参保存的是实参的地址,所以当形参改变地址中 的内容时,实参也会被改变
函数中数组的传参方式
数组作为一个参数传递给函数,实际就是传递数组首地址
两种形式: int arr[] int *arr
指针函数
本质是一个函数,只不过函数的返回值是一个指针
函数指针
本质是一个指针,这个指针指向一个函数 通常用来将一个函数通过传参的方式传递给另一个函数(回调函数)
回调函数
递归函数
结构体和共用体
结构体的概念
结构体用于存储一组不同类型的数据 结构体是用户自定义的新数据类型
定义一个结构体类型
struct 结构体名 { 数据类型 成员名1 数据类型 成员名2 .... 数据类型 成员名n };
结构体类型变量的定义方法
先定义结构体类型再定义变量名
struct 结构体名 { 成员列表; }; struct 结构体名 变量名;
在定义类型的同时定义变量
struct 结构体名 { 成员列表; }变量名;
直接定义结构类型变量
struct //没有结构体名 { 成员列表 }变量名;
结构体变量的使用形式
结构体变量的成员用以下一般形式表示: 结构体变量名.成员名
结构体数组的定义
struct 结构体名{ 成员列表; }; struct 结构体名 数组名[元素个数]
结构体指针
本质是一个指针,指针指向一个结构体,用于保存一个结构体的首地址 一般定义形式:struct 结构体名 *结构体指针名 结构体指针访问成员:p->name;(*p).name
共用体
在C语言中,不同数据类型的数据可以使用共同的存储区域,这种数据构造类型称为共用体,简称共用,又称联合体。 定义共用体的类型一般为: union 共用体名 { 成员列表; }; 共用体的所有成员共有同一个内存区域
typeof
在C语言中,允许使用关键字typedef定义新的数据类型,语法如下: typedef <已有数据类型> <新数据类型>
结构体对齐原则
内存管理
内存分类
堆区空间的开辟和释放
1---malloc();2---free()
条件编译
1、根据宏是否定义;2、根据宏的值