----------------------------------------链表链表!!!!------------------------------------------------------
现在处于一种 指针不熟 链表不会的状态.....先附上一个 书上的输入代码再说.........汗,先存起来 去看指针吧.....
#include<stdio.h> #include<stdlib.h> #define len sizeof(struct student)//宏定义 len为 结构体的长度 struct student { long num; float score; struct student *next; }; int n; struct student *creat()// 定义函数 此函数返回一个指向链表表头的 指针 { struct student *head,*p1,*p2; // 定义了三个 结构体指针 不占用空间9 n=0; p1=p2=(struct student *)malloc(len);//将其函数值的返回值(内存上的地址强制转换为 struct student 的地址.....如果没有*的话p1和p2储存的就是(好像什么也是不,,汗)) // 这里东西比较多....括号里面的是强制转换类型 这里相当于 给*p赋予了一个长度为len的空间 p1是指向这个空间的指针.. scanf("%ld,%f",&p1->num,&p1->score); //指针不熟悉....不怎么能看懂 日......得去再看看... head=NULL; //感觉这个并没有 什么卵用.... 已经注释过了 好像并没有什么用 以后再补充 while(p1->num!=0) //约定 学号没有 为0的人 并且一次为结束..... { n++; //总感觉 这几个指针 没有串联起来....... if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(len); scanf("%ld%f",&p1->num,&p1->score); } p2->next=NULL; return head; } int main() { struct student *pt; pt=creat(); printf("%lf %f",pt->num,pt->score); return 0; };