1、关于内存分配:
静态存储区:这块内存在程序的整个运行期间都存在,如全局变量、static变量;
动态存储区:通过malloc new free delete分配,动态内存的生存期由程序员决定。
局部变量分配在栈,通过malloc new free delete分配的内存在堆(heap)。这里的堆和栈与数据结构中的堆和栈是不一样的。
2、什么是野指针?
指针p被释放后,其地址不变(&p),只是该地址对应的内存是垃圾。
free(p); p不指向任何内存单元。
P = NULL;
3、函数定义规则:
参数如果是不想被改变的,可以声明为const类型,如const char *source;
4、BOOL类型的变量判断真假:
If(flag) if(!flag)
Float类型的变量判断真假:
Const float EPSINON = 0.00001;
If((x >= -EPSINON || x <=EPSINON) 不可将浮点变量用“== !=”与数字比较
如果是指针呢,则为if(p == NULL) if(p!=NULL)
《高效C编程指南》林锐