70,026
社区成员




#include<stdio.h>
#include<stdlib.h>
//定义一个结构体
struct list1
{
int val;
struct list1 *next; //next指针指向后继结点
};
typedef struct list1 item; //定义别名
void main()
{
item *curr, *head;//定义两个指针,curr用来保存当前的结点,head保存头结点的地址
int i;
head = NULL;//将头指针置为NULL
for (i = 1; i <= 10; i++)//循环10次
{
curr = (item *)malloc(sizeof(item));//malloc一个结点
curr->val = i;//赋值
curr->next = head;//将当前malloc出来的结点的next指针指向head
//i=1时,第一个结点的next指针指向NULL,i>1时,将新结点的next指向原来的头结点,在头部拼上新结点
head = curr;//head指向新结点(因为是头插法,所以让head重新指回当前链表的第一个结点)
}
curr = head;//curr指向头结点以输出链表中的元素
while (curr)
{
printf("%d\t", curr->val);
curr = curr->next;
}
getchar();//调试模式
};
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。