【发布时间】:2014-02-09 16:51:08
【问题描述】:
Struct node { char ch; node *link;};
node * temp = new node;
node *temp1;
我的问题是为什么我们使用第一种方式来声明动态结构而不是第二种方式。我尝试使用第二个,加上一个类来模仿堆栈,但是 display() 函数使它进入了一个无限循环,而使用前者纠正了它。为什么?
【问题讨论】:
-
对于初学者,我假设您意识到 c/c++ 都区分大小写?
node与Node不同。无论哪种方式都可以Node *temp = new Node或Node *temp1- 实际上它们都是等价的。第一个例子不仅声明了变量,还为它分配了内存。您的其余问题与您未显示的代码有关。无法对看不见的代码发表评论! -
第二个你的意思是
Node temp没有星号? -
@enhzflep 它们不等价。一个实例化一个
node对象,另一个没有。 -
@juanchopanza - 正如我已经说过的“第一个示例不仅声明了变量,还为它分配了内存”。声明!= 实例化。 (或者是吗??)你只是简单地表达了我的观点,尽管我认为更简洁。
标签: c++ pointers dynamic structure