C语言,帮忙解释一下代码的含义

2025-04-25 01:10:35
推荐回答(3个)
回答1:

楼上说的和没说有什么区别。
struct slist
{ double s;
struct slist *next;
};这里是一个节点的数据(double类型的 s和指向下一个节点的结构体指针)
typedef 重定义,将struct slist 改名为STREC。然后看fun函数,先定义一个变量max,现在先不管是干啥的,往下看,STREC *p定义了一个结构体指针,p=h->next;这句话的意思是,让传进来的那个节点 h (看函数形参 STREC *h)里面的下一节点指针存入这个 结构体指针变量 p 中,再让 h 节点中的值 s存入变量max中。

重点来了,开始做循环,如果max变量中存的值小于 p节点中的那个值(这里p节点表示的是h的下一个节点,这里不懂继续追问),就让max 等于 p节点里面的值,这样替换的话,max的值始终是比下一个节点大的。
再执行p=p->next; 这句话说细了就是p指向的下一个节点变为p,你可以把他理解为移动到了下一个节点,然后while判断 p是否为0,如果不为0 继续上述操作。

一直遍历到最后一个节点,这样就能获取到这些节点中的最大值了。最后把max的值返回,就获取成功!
不明白继续追问!

回答2:

建立一个double类型的单链表,函数fun返回单链表中的最大值

回答3:

这个就是寻找链表最大值的节点