- < >格式的引用:在系统库文件目录下搜索头文件;
- " "格式的引用:在当前工作目录下搜索头文件;好处:提高编译器的性能
- 头文件只提供声明信息,在源文件中进行实现;养成好的编程习惯
- 标识符区分大小写;
- 常量:编译器放在一个只读的内存区域,其值不能修改;
- 变量的声明和定义:变量的声明是告诉编译器变量的名称和数据类型;变量的定义将为变量分配存储区域。
- 变量的两种存储方式:静态存储和动态存储
- 全局变量、静态变量属于静态存储;普通的局部变量属于动态存储;
- 变量的四种存储类型:extern、static、register、auto
- extern:全局变量只声明不定义
- static:静态变量,变量调用后并不释放,依然保留其值
- register:变量将防砸CPU的寄存器中国,访问register变量比 访问普通变量快的多,只能定义为局部变量。
- auto:变量的自动类型推断,变量将动态存储。
- 指针和变量的关系:指针的值是变量的地址,指针本身也有地址。
-
-
int *ptr = new int; *ptr = 10; cout<<*ptr<<endl; cout<<ptr<<endl; delete ptr; cout<<*ptr<<endl; cout<<ptr<<endl;
上面代码展示了new和delete的含义:new关键字用来在堆中开辟空间,将变量值存储在堆中。delete关键字用来释放new新建的堆空间。对于手动分配的堆空间,使用后一定要释放堆空间,否则会造成内存泄漏。
-
为数组分配空间和删除空间的方法:
int *array = new int[5]; delete [] array;
注意:使用new运算符为数组分配空间时,不能对数组初始化。
-
静态变量、全局变量、new变量放在堆中(存储占用空间大、生命周期长)
-
局部变量、函数参数放在栈中(存储占用空间小、生命周期短)