#include <iostream.h>
class b
{ int x;
public:
b(){cout<<"a";}
b(int i){x=i; cout<<i<<endl;}
~b()
{;}
};
void main()
{
b *p;
p=new b[3];  //动态创建对象数组,数组里的每个元素都会执行一次对应的构造函数

delete[] p;
}

解决方案 »

  1.   

    所谓数组名只是一个标号而已,
    就如
    int a[3],
    其实a只是一个标号,
    但指针是一个变量
    int *p = a
    p就是一个变量,它占有4个字节的空间。
      

  2.   

    请问akiko 
    你为什么说可以使用p[1]这样的写法。    这一点我不明所在。 我问这个问题的原因就是因为程序里面还有p[0]、p[1]  这些东西, 我就是不明白:p只不过是指针名,为什么把它写成数组那样?
      

  3.   

    因为p[i]就是*(p + i)。
    其实数组也一样:
    int a[3];
    a[2]就是*(a + 2)C语言里就是这样的,就是可以的,没什么理由。
      

  4.   

    是的,是的.
    楼上说得有理. 顺便问一下steedhorse为什么不做版主了?