| 
1.储存c语言的内存可分为虚拟内存和物理内存,将其中一个C语言含如进程的虚拟内存放大来看,会发现其内部包下区域:栈,堆,数据段,代码段四部分
 栈:存放的是命令行参数(比如char *argv[]),环境变量,局部变量
堆:用户自定义空间(比如用malloc,calloc申请的空间)
数据段:全局变量和用static定义的静态数据
代码段:用户代码和系统初始化代码
 static
 static的作用:
	1.对于全局变量和全局函数来说:使它们只能在本文件使用,在多文件时
	不必担心命名冲突
	
	2.默认初始化为0
	
	3.对于局部变脸来说:使用完后不会立马被释放,还会继续保存
 const
 具有不可变性:const  [数据类型]  [变量]
 I2C有几根线,分别是什么?
 两根,数据线和时钟线
 你对C语言指针的看法及了解,当使用指针的时候需要注意哪些
 定义好了要初始化,不使用时让它置空;
引用时要注意不要越界
不用时要释放指针空间,然后让它指向NULL;
 数组和链表的优缺点,链表的遍历、逆序是怎么进行的
 1.数组需要提前申请所占内存的大小,空间是连续的,插入和删除效率低,
在栈中分配空间
2.链表的空间可以是不连续的,只需要用指针把他们关联起来,内存是动态分配的,
方便扩充,不方便查找,空间利用率高
 malloc的了解
 1.在堆中申请空间,最后要释放掉,初始化时要用memset,申请的空间是连续的,
2.calloc命令,则不用初始化,它可以将一块内存分成多块空间
 this指针的性质;
 1.this 是类的指针 
2.this 指针是在成员函数的开始前构造,并在成员函数的结束后清除 
 从.c源文件到执行问件要经历哪几个步骤?
 	1.预处理:预处理过程主要处理那些源文件中的以“#”开始的预编译指令。
	包括#include,#define, #if,等等。
	
 	2.编译:编译过程就是把预处理的文件进行一系列的词法分析,语法分析,
 	语义分析以及优化后产生相应的汇编代码文件。
 	
 	3.汇编:将汇编代码文件变成能被计算机识别的二进制代码文件
 	
 	4.链接:将各个源文件编译好的有用的代码链接起来,使他们能够互相引用  
 |