马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
struct student { int num; double score; struct student *next; }stu, stud;
void main() { struct student *head, *p1, *p2, *p0, *p3, *p4; int n, i; p0 = &stud; p1 = &stu; p2 = &stu; scanf("%d %lf", &stu.num, &stu.score); head = NULL; n = 0; while ( p1 -> num ) { n ++; if ( n == 1 ) { head = p1; } else { p2 -> next = p1; } p2 = p1; p1 -> next = malloc( sizeof( stu ) ); p1 = p1 -> next; scanf("%d %lf", &p1 -> num, &p1 -> score); } p2 -> next = NULL; p3 = head; p4 = p3; while ( head ) { printf("学号:%d\n成绩:%lf\n", head -> num, head -> score); head = head -> next; } printf("输入要插入第几个节点:"); scanf("%d", &i); if ( n < i ) { printf("error\n"); } else { n = 0; printf("输入要插入的数据:"); scanf("%d %lf", &stud.num, &stud.score); while ( p3 -> next ) { n ++; if ( n == i ) { p0 -> next = p3 -> next; p3 -> next = p0; } p3 = p3 -> next; } } while ( p4 ) { printf("学号:%d\n成绩:%lf\n", p4 -> num, p4 -> score); p4 = p4 -> next; } } 这是我看了小甲鱼结构体与共用体教程之后做的,这其中为什么我将p3指向了head,而head指向的地址发生了变化,p3却没没有变,而我再定义一个p5指针指向p3的时候p3变了p5也会跟着变,这是怎么回事?
|