链表打印时出现地址
请前辈指导,谢谢!
程序代码:#include "stdio.h"
#include "stdlib.h"
//===============================================================
/*声明结构体*/
typedef struct istudent
{
int iscrose;
struct istudent* inext;
}node;
int i;
/*创建链表*/
node* icreate()
{
node* iend,*inew,*ihead;
int n; //声明录入的个数变量
int scrose_num; //声明录入的数据变量
i=0;
ihead=(node*)malloc(sizeof(node)); //分配头节点
if(ihead==NULL) //如果头节点分配失败,提示并结束操作
{
printf("头文件节点分配失败!\n");
return NULL;
}
ihead->inext=NULL; //置空头指针域
iend=ihead; //头指针指向尾部节点
/*输入不超过n个项目的整数*/
printf("请输入准备录入的个数:\n");
scanf("%d",&n);
printf("请输入%d个整数:\n",n);
while(i<n) //不超过n个项目的数目
{
i++;
scanf("%d",&scrose_num); //录入数据
if(scrose_num<0) //如果录入的数据小于0,结束操作
{
break;
}
inew=(node*)malloc(sizeof(node)); //新节点分配空间
if(inew==NULL) //如果新节点分配空间失败,提示并返回空
{
printf("创建新节点失败!\n");
return NULL;
}
inew->iscrose=scrose_num; //新节点保存数据
inew->inext=NULL; //置空新节点指向的下一节点
iend->inext=inew; //新节点插入尾部节点
iend=inew; //指针新节点指向尾部节点
printf("i的值为:%d\n",i); //输出了多少次整数
printf("数目为:%d\n",inew->iscrose); //打印录入的整数
}
iend->inext=NULL; //置空尾节点
return ihead;
}
//======================================================================================
/*打印链表*/
void prit(node* phead)
{
node* itemp;
itemp=phead;
printf("要输入的数目总共为:%d\n",i); //打印录入的个数
if(itemp==NULL) //如果头节点为空
{
printf("链表为空!\n");
}
else
{
printf("头指针的地址为:%o\n",phead); //打印头节点地址
while(itemp!=NULL) //头节点不为空时,打印出录入的整数
{
printf("输入的数目为:%d\n",itemp->iscrose);
itemp=itemp->inext; //指向下一节点
}
printf("\n");
}
}
//==========================================================================================
int main()
{
node* itep;
itep=icreate();
prit(itep);
return 0;
}
调试时,打印出现一个地址
调试结果如下:
请输入准备录入的个数:
5
请输入5个整数:
11
i的值为:1
数目为:11
12
i的值为:2
数目为:12
13
i的值为:3
数目为:13
14
i的值为:4
数目为:14
15
i的值为:5
数目为:15
要输入的数目总共为:5
头指针的地址为:34007030
输入的数目为:-842150451
输入的数目为:11
输入的数目为:12
输入的数目为:13
输入的数目为:14
输入的数目为:15
Press any key to continue
在打印录入的整数时会先出现一个地址,-842150451
请各位前辈指点,到底哪里出问题了?
谢谢!



谢谢前辈。不过phead->inext==NULL和itemp->inext==NULL不一样的含 义吗?