C++指针系列
写这篇文章总结C++指针的用法。 在C++中最好不要用new/delete来使用指针,而应该用智能指针来管理资源,智能指针就属boost做得最好了。boost的源码和使用方法在网上随便一搜就可以找到,在此就不哆嗦了。下面进入正文—— 最后的指针 1. delete , delete[]的区别 虽然要放弃new/delete的用法,但在这里还是要讲一个值得注意的地方。 int* arr=new int[3]; //不同于new int(3),用[]是指明arr是具有3项的数组,而()是给申明一个整数,其初值为3 在这总情况下,下面两种delete都正确 delete arr; //OR delete [] arr; 2. const不同位置的区别 const int *p = new int(4); //或者 int const *p = new int(4); 这里用const后,就不能 *p = 5 ; 进行赋值。这时*p所指内容不能修改。 int *const p = new int(4); 不能用 p = NULL ; 这里p本身不能被修改 3. 将指针作为参数时的注意事项 如果将一个指针传入函数,并且在这个函数中分配内存后再赋值,那么得用两维指针。如下 void GetValue(int *v) //这个代码是错误的 { v = new int; *v =