鱼C论坛

 找回密码
 立即注册
查看: 2957|回复: 3

关于指针处理链接问题

[复制链接]
发表于 2012-7-21 19:16:28 | 显示全部楼层 |阅读模式
1鱼币
#include "stdio.h"
#define Null 0
struct student
{
int num;
float score;
struct student *next;
};
void main()
{
struct student a,b,c, *head,*p;
a.num=10101;a.score=100;
b.num=10102;b.score=99;
c.num=10103;c.score=88;
head=&a;
a.next=&b;
b.next=&c;
c.next=Null;
p=head;
while(p!=Null)
{
  printf("%ld %lf ",p->num,p->score);
        p=p->next;

}
}
这个head的指针 我不明白 他定义来做什么用   他把他指向地址a 后面又有p指向地址a  为什么不直接把p指向地址 a;
把head 删了,直接用改为p=&a改了可以运行。结果也显示正常,我现在疑问的是 这个head只是为了更容易理解才用到的还是他有其他的作用?

最佳答案

查看完整内容

这只是一个最简单的 链表而已 所以 你看不出 head 头指针的 作用 但是当你写一个 动态的建立一个 链表 需要进行对 链表 插入 删除等操作的 这时候 head 才能体现出 重要性来 你学到后面 你会理解的 head 你所说的把head 删了 直接用p 在这个程序是可以的 但是当你后面用到 插入 删除等操作时 必须要定义一个 结构体指针变量来保存 头指针的地址
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-21 19:16:29 | 显示全部楼层
这只是一个最简单的 链表而已 所以 你看不出 head 头指针的 作用  但是当你写一个 动态的建立一个 链表 需要进行对 链表 插入 删除等操作的 这时候 head 才能体现出 重要性来  你学到后面 你会理解的 head 你所说的把head 删了 直接用p 在这个程序是可以的 但是当你后面用到 插入 删除等操作时  必须要定义一个 结构体指针变量来保存 头指针的地址
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-21 21:11:28 | 显示全部楼层
其实吧,感觉好像就是思路比较明确吧。这样看起来比较容易懂吧。呵呵别的我也没有想出来。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-7-22 22:44:12 | 显示全部楼层
简单的链表一般有头指针(指向第一个数据),尾指针(指向最后一个数据),前指针(指向链表的前一个数据),后指针(指向链表的下一个数据)。

head指针(头指针)一般指向一个链表的第一个数据,在实现链表的遍历,插入,删除都要用到。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 07:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表