链表打印时出现地址
请前辈指导,谢谢!程序代码:
#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
请各位前辈指点,到底哪里出问题了?
谢谢!