* table [17]是什么意思?

时间:2018-04-05 10:11:28

标签: c++

给定代码中的* table [17]是什么?它只是制作了17份结构吗?

struct node
{
  string key;
  string no;
  node *next;
}*table[17];

2 个答案:

答案 0 :(得分:5)

  

* table [17]是什么意思?

这是一个声明者。它声明了一个名为*node[17]的{​​{1}}类型的变量。这是一个包含table的17个指针的数组。

  

它只是制作了17份结构吗?

没有。不会生成node个对象。

答案 1 :(得分:2)

  

什么是* table [17]?

这行代码...}*table[17];的含义是,你定义了一个struct node并声明了一个类型node pointer的数组,该指针数组的大小是存储17个节点元素/对象指针。因此,在 table 数组中,您可以存储17个节点元素的 地址

例如: -

    struct node a, b, c, d ....,p;         
    table[0] = &a;//storing the address of a;
    table[1] = &b;//storing the address of b;
    table[2] = &c;//storing the address of c;
    .
    .
    .
    table[16] = &p;//storing the address of p;

或动态: -

      for( int i = 0; i < 17; i++)
          table[0] =  new node();// in C (struct node *) malloc(sizeof(struct node)); 
  

它只是制作了17份结构吗?

不,它只是一个由17个指针组成的数组。您必须在每个位置分配 节点 类型的元素的地址。因此,您必须像我上面那样创建每个节点元素。希望这会帮助你。