这里首先我们需区分一下指针数组和数组指针。
指针数组:int *p[4];它最终是个数组,只是这个数组存储的是4个指向int类型的指针。
数组指针:int (*P)[4];它最终是个指针,表示一个指向一个int类型数组的指针。
下面来看一下具体代码:
#includeusing namespace std;class T{public: T(){cout<<"调用一次默认构造函数"<
代码输出结果:
为什么?
为什么他们没有调用类的构造函数呢????
因为,T (*p)[3];是一个指针,没有实例化的指针是不会调用构造函数的。,怎么实例化,很简单啊,你可以T *pp=new T;,酱紫它就会调用构造函数了。
同样,T *q[3];虽然是一个数组,但是数组里的元素全是指针,他们也没有经过实例化,那么也就不会调用构造函数了。