链表和堆栈中,定义节点经常如下:
struct node{
int data;
Node* node;
}
学生问题我,定义Node *p,为什么一定需要申请空间。我说,这里定义的指针,当然需要通过New或者malloc申请对象空间。
后来沿着这个问题仔细思考了下。
1.节点定义中,为什么要用Node *node.指针来指引下个节点。
很简单,如果不用指针,编译会报错。不能声明非完全类型。 struct标示符和class标示符类似,都是用于类的声明。struct默认访问模式是public,class默认访问模式是private.
2.能不能不使用New或者malloc实现相同功能。
如果不使用new,则声明对象的时候不能使用指针。可以直接声明对象。如下面例子:
#include<iostream>
using namespace std;
struct No