标题:为什么p是first use?
只看楼主
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
结帖率:72.73%
已结贴  问题点数:20 回复次数:8 
为什么p是first use?
#include<stdio.h>
#include<stdlib.h>
typedef struct player
{
    int value;
    struct player *next;
}PLAYER;
int main()
{
    int number,i=0;
    PLAYER *head=NULL;
    do
    {
        scanf("%d",&number);
        i++;
        if(number!=-1)
        {
            PLAYER *p=(PLAYER *)malloc(sizeof(PLAYER));
            p->value=number;
            p->next=NULL;
        }
        PLAYER *node=head;
        if(node)
        {
            while(node->next)
                node=node->next;
            node->next=p;
        }
        else
            head=p;
    }
    while(number!=-1);
}
搜索更多相关主题的帖子: player int next number head 
2017-07-12 10:52
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:7 
if里面的p 自然就有不被执行的机会

DO IT YOURSELF !
2017-07-12 11:04
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
得分:0 
回复 2楼 wp231957
可是这代码连编译都过不去。。
2017-07-12 11:22
静水且流深
Rank: 5Rank: 5
等 级:贵宾
威 望:11
帖 子:60
专家分:319
注 册:2017-7-7
得分:7 
如果是尾插法建立链表的话,修改如下:
程序代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct player
{
    int value;
    struct player *next;
}PLAYER;
int main()
{
    int number=0,i=0;
    PLAYER *head=NULL;
    PLAYER *p=head;
    do
    {
        scanf("%d",&number);
        if(number!=-1)
        {
            i++;
            PLAYER *q=(PLAYER *)malloc(sizeof(PLAYER));
            q->value=number;
            q->next=NULL;
            p->next=q;
            p=q;
        }
    }
    while(number!=-1);
}

不过是爱情,又能走多久
2017-07-12 11:23
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:7 
p定义放在开头,不然是局部变量。

[此贴子已经被作者于2017-7-12 11:37编辑过]

2017-07-12 11:34
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
得分:0 
回复 5楼 ehszt
这些语句不都是在main函数里面吗,怎么成局部变量了呢
2017-07-12 11:54
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
得分:0 
回复 4楼 静水且流深
哈哈,谢谢了,我也是刚刚看视频教学学的,谁知道代码照抄那老师的居然不过去
2017-07-12 11:56
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:0 
#include<stdio.h>
 int main()
 {
     int a=10;
     if(a)
     {
         int b=9;  //这里的b只在当前的大括号中有效,编译是通不过的
         b--;
     }
     printf("%d",b); //会提示这里没有声明
 }
2017-07-12 12:10
温酒斩化腾
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2017-3-28
得分:0 
回复 8楼 ehszt
谢谢
2017-07-12 15:44



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




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

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