标题:建立链表里面开辟新的单元为什么可以连等?
只看楼主
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
结帖率:90.32%
已结贴  问题点数:14 回复次数:5 
建立链表里面开辟新的单元为什么可以连等?
程序代码:
#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct Student)
struct Student
{
    long num;
    float score;
    struct Student *next;
};
int n;
struct Student *creat()
{
    struct Student *head;
    struct Student *p1,*p2;
    n=0;
    p1=p2=(struct Student *)malloc(LEN);//这个地方,和一般定义变量有什么不同?//
    scanf("%ld,%f",&p1->num,&p1->score);
    head=NULL;
    while(p1->num!=0)
    {
        n=n+1;
        if(n==1)head=p1;
        else p2->next=p1;
        p2=p1;
        p1=(struct Student *)malloc(LEN);
        scanf("%ld,%f",&p1->num,&p1->score);
    }
    p2->next=NULL;
    return(head);
}


int a=b=1这个样子不是错的么,为什么上面那个p1=p2=是对的


[ 本帖最后由 飞跃的乌龟 于 2012-12-24 13:32 编辑 ]
搜索更多相关主题的帖子: head next 
2012-12-24 13:27
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
得分:2 
没明白楼主的意思

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-24 13:30
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
得分:10 
初始的时候P1 P2 用的同一个地址
是int a,b;
a=b=1; 才对应上面的情况,没有问题
2012-12-24 13:34
飞跃的乌龟
Rank: 2
等 级:论坛游民
帖 子:96
专家分:18
注 册:2012-10-20
得分:0 
回复 3楼 jk_love
等号右边不能为变量
int a,b;
a=b=1;这样可以?
2012-12-24 13:38
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:2 
赋值运算符本来就是右结合的撒...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2012-12-24 14:43
麦香
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:65
专家分:163
注 册:2011-10-18
得分:0 
struct Student *p1,*p2;
    n=0;
    p1=p2=(struct Student *)malloc(LEN);//这个地方,和一般定义变量有什么不同?//

这个时候 p1  p2  已经定义而且是变量

int a = b =1;
这个编译器会认为b未定义

你们要进窄门,因为引向灭亡的门是宽的,路是大的,进去的人也多。
2012-12-24 21:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-393238-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035446 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved