一个指针的有关问题.

一个指针的问题....
#include <iostream.h>
void   main()
{

        int   *p=new   int[10];
        //p=new   int[10];
        int   *n;
        n=new   int;
        *n=10;
        cout < < "n= " < <n < < "     (n是地址)         *n= " < <*n < <endl;

        if(!p)
{
        cout < < "内存分配失败! ";
       
}
        for(int   i=0;i <10;i++)
{
        p[i]=i;
        cout < < "p[ " < <i < < "]= " < <p[i] < < "           为什么此处p[i]是数值??? " < <endl;
}
        delete   [10]p;
        delete   n;
}

为什么p[i]是数值???

------解决方案--------------------
呵呵,这个问题, p[i] 相当于*(p + i), 这是基本语法呀,
还要提醒一句 delete [10]p; 在我知道的编译器中的除了cfront,现代编译器
几乎都会无视[10]中的参数10, 写delete [] p就可以了.
------解决方案--------------------
int *p=new int[10];

p 是指针,
所以, p[i] 就是指针指向的第i个元素,是 int 类型的 ~
------解决方案--------------------
int * p = new int[10];
p就是指向数组的首地址,p[i]就等 *(p+i);
------解决方案--------------------
p[i] 就相当于 *(p + i) 已经被解引用了的, 如果是(p + i)就是地址