关于C++双重指针的问题,详情如下

关于双重指针的问题
不理解如下代码中 Person ** person = new Person*[3]; 等号左边的第二个*怎么理解

#include
#include 
using namespace std;

class Person
{
public:
    virtual void func() = 0;
};

class Student :public Person
{
public:
    void func()
    {
        cout << "Student::func()" << endl;
    }
};

void test01()
{
    Person ** person = new Person*[3];
}

int main()
{
    test01();

    system("pause");
    return 0;
}

type * arr=new type[3];
这是申请动态数组的一般格式
type=Person*带进去即可

指针的指针
就类似二维数组
指针本身指向一个指针,被指向的指针指向一个地址
Person*[3];是个指针数组,它定义了一组指针
而** person就是指向指针的指针
你也可以定义*person指向Person*[3],但那样一来person本身是指向数组的地址,*person是数组的值,而这个值本身也是一个指针,指向的是指针的地址
如果你要访问实际的值,就没法访问了
那么如果一开始定义成**person,那么person指向的是数组,*person是指针地址,**person就是实际的值了

就是指针的指针啊。
第一个信号表示这是一个数组,第二个星号表示数组的元素是个指针对象

他是想申请一个动态二维数组
http://t.csdn.cn/TmWrq
昨天刚搞明白,做了一个总结,你可以瞅瞅