给定代码中的* table [17]是什么?它只是制作了17份结构吗?
struct node
{
string key;
string no;
node *next;
}*table[17];
答案 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个指针组成的数组。您必须在每个位置分配 节点 类型的元素的地址。因此,您必须像我上面那样创建每个节点元素。希望这会帮助你。