指针初始化的方法(续)
上一篇博文中,我主要是探讨了如何对指针初始化。在这一篇博文中,我主要是想要来说明一个其实早就面熟的概念,就是利用指针自己的类型来初始化指针。这种方法在特别是对类的对象进行初始化的时候十分常见。比如:
Human *unique=new Human;
下面,我们用一个小程序来比较这种初始化指针的方式和00值初始化指针有什么不同。
#include <iostream> using namespace std; int main() { //利用0来初始化指针 int *p=0; cout<<"p的值为:"<<p<<endl; //利用指针的类型来初始化指针 int *q=new int; cout<<"q的值为:"<<q<<endl; }
这个小程序的输出为:
由上面这个小程序的输出我们可以清楚的看出这两种赋值方法的不同:
- 利用0来初始化指针,那么指针中所存的地址就一定为0x00000000;
- 利用类型int来初始化指针,那么指针所存的地址就为编译器自动给其分配的地址。
======================================总结=========================================
通过上面这个小程序的演示我们可以发现,在这两种初始化的方法都有好处,但是本人更加、偏向于采用第二种,即就是利用指针的类型来初始化该指针。这样的好处就是我们不需要知道是不是在0x00000000中有不可更改的内容;而且用第二种方法更容易与后面的类的定义对象的方法“接轨”,呵呵 O(∩_∩)O