为什么我们再次从结构对象创建结构变量?

RaH*_*HuL 2 c++ typedef declaration

我是c++初学者。我怀疑为什么在这个程序中他们再次从之前创建的结构对象创建结构变量?这是示例:

typedef struct prog1
{

int a,b;

}*obj1;

int main()
{

obj1 moc=new prog1(); // why again creating object for *obj1 object?
moc->a=10;  // why dont we use obj1 -> a=10;

}
Run Code Online (Sandbox Code Playgroud)

谢谢

And*_*hev 5

obj1不是对象而是类型定义,因为它是typedef定义的一部分。也就是说,它是一种类型prog1*(指向 的指针prog1)。声明obj1 moc了该类型的变量,即moc指向 的指针prog1