c语言链表的初始化和创建(vc通过而vs通不过的问题)

代码
#include<stdio.h>
#include<stdlib.h>
//链表的建立与输出
struct node//定义结点的类型
{
int num, score;
node* next;
};
void main()
{
node* creat(int n);//函数原型声明
void print(node * h);//函数原型声明
node* head = 0;//定义链头指针并初始化
head = creat(5);//调用creat函数创建链表
print(head);//调用print函数输出链表
}

node* creat(int n)
{
node* h = 0, p=0, q;
int i;
for (i = 1; i <= n; i++)
{

	q = (node*)malloc(sizeof(node));//分配一个结点空间
	scanf_s("%d%d", &q->num, &q->score);//输入新结点的值
	q->next = 0;//新结点的指针域置0
	if (h == 0)
		h = q;//第一个结点作为链头结点
	else
		p->next = q;//新结点添加到链表的末尾
	p = q;
}
return h;//返回链头指针

}
void print(node* h)//链表输出函数的定义
{
while (h)//当指针h非空时输出h所指结点的值
{
printf(“num=%d\tscore=%d\n”, h->num, h->score);
h = h->next;//使h指向下一个结点
}
}

值得注意的是在定义创建链表函数的时候,p必须要赋初值,否则在vs里是通不过的(vc6.0可以通过)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值