指向C++;结构 如果我在C++中创建这样的结构: typedef struct node { int item; int occurrency; };

指向C++;结构 如果我在C++中创建这样的结构: typedef struct node { int item; int occurrency; };,c++,struct,C++,Struct,我知道一个结构是使用连续的空格在内存中分配的,但是这个结构的名称是什么(node?一个简单的方法给结构命名?< p> C++中,你不必使用 TyPulfF来命名结构类型: struct node { int item; int occurrency; }; 够了 指向该结构实例的指针将被定义为node*mypointer 例如:您想使用new分配一个新实例: node* mypointer = new node; 节点是类型的名称。您可以有多个该类型的对象: struct n

我知道一个结构是使用连续的空格在内存中分配的,但是这个结构的名称是什么(
node
?一个简单的方法给结构命名?

< p> C++中,你不必使用<代码> TyPulfF来命名结构类型:

struct node {
    int item;
    int occurrency;
};
够了

指向该结构实例的指针将被定义为
node*mypointer

例如:您想使用
new
分配一个新实例:

node* mypointer = new node;

节点
类型的名称。您可以有多个该类型的对象

struct node {
  int item;
  int occurrency;
};
node a;
node b;
在本例中,
a
b
具有相同的类型(=
节点
),这意味着它们在内存中具有相同的布局。在C中既有a.item
也有b.item

struct node {
    int item;
    int occurrency;
};
是一个标记,它本身并不表示类型。 这就是为什么你不能这样做

node n;
你必须这样做

struct node n;
因此,为了给它一个“类型名”,许多C程序员使用
typedef

typedef struct node {
    int item;
    int occurrency;
} node;
这样你就能做到

node n;
而不是

struct node n;
另外,您可以省略标记并执行以下操作

typedef struct {
    int item;
    int occurrency;
} node;
struct node {
    int item;
    int occurrency;
};

但是,在C++中,这一切都改变了,不再需要<代码> TyPulf语法。默认情况下,C++类和结构被认为是用户定义类型,所以可以使用下面的

typedef struct {
    int item;
    int occurrency;
} node;
struct node {
    int item;
    int occurrency;
};
然后像这样声明节点

node n;

它是一种数据类型,是
类的特例。。。我不知道你在这里找什么。内存中的<>代码>结构> /代码>与概念的名称有什么关系?为什么标题是“C++结构的指针”?这个问题与指针无关。佩菲特,这就是我的意思。在这种情况下,a和b是什么?指针?空值?我想我的第一个问题错了…@unNaturhal:它们都是对象,也就是记忆区域<代码>&a
将是指向该内存区域的指针。对象未初始化;在读回它们的值之前,必须先给它们写信。请给我举一个结构内存分配的例子好吗?我不明白
*a
哪个值返回:/
*a
没有意义。你最好咨询一下