申请和释放内存配套,不可混用。 2. 申请内存需要判断是否成功
int *p = new int; if(NULL == p){ //内存分配失败 //异常处理 }使用const比宏定义define好,因为编译时const会检查变量类型,不易出错。 另外:
const int *p; int const *p; //二者等价下面记录C++Primer中提到的一个问题: 假设给出以下语句:
typedef string *pstring; const pstring cstr;请问cstr变量是什么类型? 答案是const string类型的指针。 那const pstring指针所表示的真实类型是什么? const修饰的是pstring,而pstring是一个指针,所以等价为:
string *const cstr; //指向string类型对象的const指针 //下面这个等价是错误的 const string *cstr;