#include <stdlib.h> #include<stdio.h> struct linklist{ char zimu; struct linklist *next; }; int main(){ struct linklist *p1,*p2;//定义两个结构体指针p1,p2,一直把p2接在p1后面(旧的p2在新的p2后面),实现倒序输出 p1=(struct linklist*)malloc(sizeof(struct linklist));//给p1开辟一个初始空间 p1->next=NULL;//p1后面接空结点 int i;//循环变量 for(i=0;i<26;i++){ p2=(struct linklist*)malloc(sizeof(struct linklist));//每一次循环开辟一个新的空间来储存字母 p2->zimu='a'+i;//实现输入字母a~z p2->next=p1->next;//把p2接在p1后面,实现倒序输出 p1->next=p2; } while(p1->next!=NULL){ printf("%c",p1->next->zimu); p1=p1->next; } //释放空间 while(p1!=NULL){ struct linklist* p3=p1;//定义一个指针来记住之前的p1,在p1指向下一个结点之后再释放原来的p1,以此来达到释放空间的效果 p1=p1->next; free(p3); } }