枚举
枚举实际上就是一种特殊化的宏定义define,它实际上就是把枚举中的数据宏定义成数字。但是枚举相对于宏定义,还是存在一些优势的
- 更加安全:宏定义只是单纯文本替换,枚举却提供了一种数据类型,编译器会去检测赋值和比较是否合法
- 作用域限制:枚举只有在定义的数据类型中才会生效
- 自动编号:枚举在预定义时会比宏定义更方便,而且可以自动编号
内存管理
为一个指针赋予一个new的内存后,其实已经占用了两片内存,一片是new的内存,另一片是指针的内存。正因如此,在执行完delete后,其实指针占用的内存并没有被清理,它本身还是指向原来的那片内存,只不过指向的区域被清空了,它变成了一个悬挂指针。所以,出于优化,最好将它变成空指针,也就是说如下:
int *p = new int;
//内容
delete p;
p= NULL;