数组和指针
1.int *pi = 0; pi不指向任何对象。
指针最好应初始化,如果须分开定义指针和其所指向的对象,则将指针初始化为0.
2.把int型变量赋给指针是非法的,尽管此int型变量的值可能为0.但允许把数值0或在编译中可获得0值的const量赋给指针。
3.如果把指向const的指针理解为“自以为指向const的指针“,这可能会对理解有所帮助。
4.复杂const 类型的声明 ??
5.如果cp指向的字符数组没有null结束符,则此循环将会失败。这时,循环 会从cp指向的位置开始读数,直到遇到内存中某处null结束符为止。
6.对大部分的应用而言,使用标准库类型string,除了增强安全性外,效率也提高了,因此应该尽量避免使用C风格字符串。
7.每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区(free store)或堆(heap)。
8.动态空间的释放:
delete [ ] pia;
空方括号对是必不可少的 ;它告诉编译器该指针指向的是自由存储区中的数组,而并非单个对象。
如果遗漏了空方括号对,这是一个编译器无法发现的错误,将导致程序在运行时出错。
9.在下面的声明中,圆括号是必不可少的:
int *ip[4] ; //array of pointers to int
int (*ip) [4]; //pointers to an array of 4 ints