学习目标
(1)#include< >和#include" "的区别。
(2)全局变量和局部变量的区别。
(3)define和typedef的区别。
(4)static的作用。
(5)什么是内存泄漏。
一、#include< >和#include" "的区别
(1)#include< >:编译器会从标准库的路径里面去搜索,对搜索标准库的文件速度会比较快。
(2)#include" ":编译器会从用户的工作路径去搜索,对于自己定义的文件比较快。
二、全局变量和局部变量的区别
(1)作用域不同:全局变量作用域为程序块,局部变量作用域为当前函数内部。
(2)生命周期不同:全局变量生命周期是整个程序,局部变量生命周期是当前函数。
(3)存储方式不同:局部变量存储在栈里面,全局变量存储在全局数据中。
(4)使用方式不同:全局变量在程序的各个部分都可以使用,局部变量只能在函数内部使用。
三、define和typedef的区别
(1)define是一个预处理命令;typedef是关键字。
(2)define不会做正确性检查,直接替换;typedef会做正确性检查。
(3)define没有作用域的限制;typedef有作用域的限制。
(4)对指针操作不同,一般使用typedef进行指针重命名。
四、static的作用
(1)定义一个静态变量或是静态函数。
(2)在函数体中使用static去定义变量,那么这个变量只会被初始化一次。
(3)定义的静态函数或静态变量只能在当前文件中使用。
(4)在函数内部定义的静态变量无法被其它函数使用。
五、什么是内存泄漏
内存泄漏指的是在程序运行的时候,动态分配的空间没有被回收或者是正确释放,导致了内存空间还占据着系统的资源。