C语言的结构体指针和链表问题

我有个问题,就是一直不知道结构体指针是否相互独立,如果不是独立,那么下面比较好理解。。
我定义了个链表
typedef struct node
{
char data;
struct node *next;
}Node;

Node *p, *head,*q;
head = NULL;
scanf("%c",&node);
add->data=node;
add->next=NULL;
if(head) {
q->next =p;
q=p;

最后三行吧。书上说的为了连接起链表,但是q本来没有定义,突然q的next指向了p,然后q又等于p。。
如果p和q相互独立,那这个链表怎么可能连接起来啊??求高手解释说下

第1个回答  2014-08-29
对L的操作不能完全说是对head的操作,对于操作它们的元素时才能说是等同的,而你可以让L指向另外一个链表。
L 一般会向“后”(L=L->next;其实是无前后这种说法的,都是在存诸中)移动,那么有时需要返回它的第1个元素的地地址时,你只需返回head就可以了,而不必去计算你向后移动了多少单位(其实你确实可以去计算,然后返回)。

满意请采纳。
第2个回答  2014-08-29
其实没有很清楚,楼主想要了解的内容。

相互独立跟连接起来 直接有什么排斥的地方吗?

最简单的例子,人与人之间相互独立,但是可以通过GPS知道对方的位置。追问

我的意思是,定义了两个结构体指针,*p和*q,都是struct Node的。。那这两个指针中的结构变量是否完全独立没有任何关系??

追答

如果你只是单纯定义 一开始完全没有关系的。
建立关系 只是通过他们存储的内容。

本回答被提问者采纳
相似回答