链表的头指针指向问题!

ztwz 2004-04-26 05:33:50
下面是一个创建链表的例题,但是我有一点看不明白,请大虾指点一下呀!
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head;
int num,i;
ptr=(link)malloc(sizeof(node));
ptr=head;
/*就这儿看不懂,head没有给他初始化,也不知道他指向哪儿,怎么就把它的地址又赋给ptr了呢?应该写成head=ptr;才对吧?我看老潭的哪书也是这样写的。请大虾解释一下,偶先谢啦~~~*/
printf("please input 5 numbers==>\n");
for(i=0;i<=4;i++)
{
 scanf("%d",&num);
 ptr->data=num;
 ptr->next=(link)malloc(sizeof(node));
 if(i==4) ptr->next=NULL;
 else ptr=ptr->next;
}
ptr=head;
while(ptr!=NULL)
{ printf("The value is ==>%d\n",ptr->data);
 ptr=ptr->next;
}

}
...全文
79 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztwz 2004-04-26
  • 打赏
  • 举报
回复
谢谢!!!!!!
老谭的书没错~是我看错啦~!!!
散分
laomai 2004-04-26
  • 打赏
  • 举报
回复
另外,老谭的书指的是那本《C程序设计》吧?我这有它的第二版,里面的第11.7节是关于链表的,也没看到楼主说的那种写法啊?
laomai 2004-04-26
  • 打赏
  • 举报
回复
楼主的理解是对的。ptr=head确实写反了
RookieStar 2004-04-26
  • 打赏
  • 举报
回复
ptr是你已经分配好内存的,head是用来做头指针的标记,当然是把ptr赋值给head了。
zhouqingyuan 2004-04-26
  • 打赏
  • 举报
回复
其实你应该有求助编译器的习惯,比在这里求助更好的!
如果把这些代码输入编译器,实际的编译一下,就可以知道谁是谁非了。
sharkhuang 2004-04-26
  • 打赏
  • 举报
回复
你是对的.
ztwz 2004-04-26
  • 打赏
  • 举报
回复
TTTTTTTTTTTTTTTTTTTTTTTTT
大虾们看看呀~~~~~~~~~~~~~~~~

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧