关键字的作用:
extern :修饰的变量或者函数 表示在其他文件定义过了
const : 通过const修饰的 表示只读。 在*左边表示不可以通过指针修改里面的内容,可以改变指针的指向,在*右边 表示 不能改变指针的指向,可以修改里面的内容
static : 1> 延长局部变量的生命周期,但是作用域没有改变,还是只能在函数的内部进行访问;
2> 只在第一次调用这个函数时 对这个局部变量进行初始化,后续在调用时都不在进行初始化。
3> static 修饰的未初始化的全局变量 存在bss段,修饰的初始化的全局变量在data段
volatile : 修饰的变量是异变的, 直接通过内存访问,不通过缓冲区进行访问。
sudo dpkg -i 软件的名字 : 离线安装程序
sudo apt-get install 软件的名字 :在线安装程序
tar -xvf 目录的名字 (解压缩)
tar -cvf 目的名字 (压缩)
管道符 | :
shell 命令1 | shell 命令2 | shell 命令3
前一个命令的结果作为后一个命令的输入
grep "main" ./ nR : 递归搜索当前目录下 所有main 字符串
find ./ -name :当前路径下查找名字为-name的文件
cut -d ":" -f 6 passwd :剪切第6个冒号分割的字符串
7种文件类型:bsp-lcd
b: 块设备文件
s: 套接字文件
p: 管道文件
-:普通文件
l: 链接文件
c: 字符设备文件
d: 目录文件
file 文件的文字 : 查看文件的类型
网络的基础知识:
IP 地址 : 192.168.70.30 (采用点分十进制表示)
197.168.70.0 (网络号) 30 (主机号)
IP的分类 ivp4 : 4 字节 ivp6 : 16字节
使用宏定义编写一个模板函数:
使用 ## 将俩个参数拼接的知识点
#define MAX(T) T max_##T(T a , T b){
return (a > b ? a : b);
}
动态内存分配: malloc 与 free
malloc:
1,在程序中可以指定动态分配内存空间的大小
p = (int *)malloc(sizeof(int) * 10);
2, 动态分配的内存在栈区
3,动态分配的内存是连续的,并且可以通过数组的格式访问内存中的数据
4,动态分配内存以后需要使用free 释放,假如没有释放,在以后频繁的调用malloc时,会出现内存泄露。
5,使用free释放以后,要将free指向NULL, 防止出现野指针;