永发信息网

这段代码的*p和*head作用是什么啊

答案:2  悬赏:40  手机版
解决时间 2021-01-21 20:21
  • 提问者网友:心如荒岛囚我终老
  • 2021-01-21 01:55
这段代码的*p和*head作用是什么啊
最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-01-21 02:23
#include 
#include 
#include 
#define N 10
typedef struct Cust { 
char id[N + 1]; 
struct Cust *next;
}Customer;

void main() { 
char c; 
Customer *tmp,*p = NULL,*head = NULL; 
do {
printf("请输入客户id号(不多于10个字符):"); 
tmp =(Customer *)malloc(sizeof(Customer)); //创建新结点
scanf("%s",tmp->id);
tmp->next = NULL; 
if(p == NULL) { // 如果p的值为NULL,说明新结点是链表的第一个结点
p = tmp;    // P指向新结点,为后续操作的必要步骤
head = tmp; // head才是链表的头结点名称,以后再对链表进行操作时,都以head为名称

else { 
p->next = tmp; //新结点不是链表的第一个结点的操作步骤
p = tmp; 

fflush(stdin); //清除键盘输入缓冲中的残余字符,否则,下面的语句c = getche(); 无法读入键盘输入的q或Q。
printf("输入q退出输入,按任意键继续输入!
"); 
c = getche(); 
printf("
"); 
}while(c !='q' && c != 'Q'); 
p = head; 
while(p != NULL) { 
printf("id = %s
",p->id); 
p = p->next; 

}
全部回答
  • 1楼网友:话散在刀尖上
  • 2021-01-21 02:58
这个是链表的写法,指针head是指链表的头,用来遍历链表的入口,p是一个活动指针,指向自由节点或者链表中的节点,可以用来插入和删除
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯