怎么理解c语言链表的这两个语句,r->next=p;r=p;

Python017

怎么理解c语言链表的这两个语句,r->next=p;r=p;,第1张

r->next=p——让指针r指向的结点的下一个结点的指针等于指针p。

r=p——将p赋给r。

虽然看不到上下文,但大致意思是执行这两后,就将p指向的链表接在了r指向的结点后,并r的指向向后移动了一个结点……供参考。

这个就是指针自加,或者说 加减一个整型数后 地址移动的问题。

对于任何类型的指针,每加一,地址移动的是该类型的一个元素,地址值改变的也就是这个类型的大小

所以,char指针移动一次改变1, short指针移动一次 改变2, long的 一次就是4.

这里,q初始指向的 就是p,也就是'a'的位置。

然后q++, 移动4个字节,指向p[4] 也就是'e'的位置。

r赋值回来,同样是'e'的位置。

输出r,也就是从e开始输出,到结尾。

于是选D