链表,数据结构,结构

时间:2015-03-25 15:52:22

标签: c data-structures linked-list

之间的确切区别是什么        struct node head 和          struct node * head 如果我的结构是以下形式 -

struct node 
{int data;
struct node *next;
};

2 个答案:

答案 0 :(得分:0)

一个是struct 实例struct node head),另一个是结构实例(struct node * head)的指针

struct node a; /* Allocate space for a new node struct "a". */
a.data = 123;
a.next = NULL;

struct node * b = &a; /* Create a pointer "b" referring to "a". */
b->data = 234;
// Now a.data == 234.

答案 1 :(得分:0)

struct node head - > “head”是“struct node”类型的变量,即headof sizeof(struct node)

的sizeof

struct node * head - > “head”是指向“struct node”类型结构的指针,因此sizeof head =一般指针大小。

你能做到的, head.data = X; head.next = NULL;

但你做不到 头戴式>数据= X; 头戴式>接着= NULL;

因为当你说“struct node head”时,已经为你分配了内存,这与后来需要在使用这些内存之前进行动态内存分配的情况不同。