| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:关于指针的困惑(请高手指点)
只看楼主 加入收藏
gaoxin8515
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-4-15
收藏
 问题点数:0 回复次数:2 
关于指针的困惑(请高手指点)
#include<stdio.h>
#include<malloc.h>
typedef struct node
{
    int data;
    struct node *next;
}L;
void creat(L*l)//创建链表
{
    L *p,*q;
    l=(L*)malloc(sizeof(node));
    l->next=NULL;
    p=l;
    q=(L*)malloc(sizeof(node));
    printf("请输入数据:\n");
    scanf("%d",&(q->data));
    while(q->data!=-1)
    {
        q->next=p->next;
        p->next=q;
        p=q;
        q=(L*)malloc(sizeof(node));
        scanf("%d",&(q->data));
    }
//    return l;
}
void printlist(L *l)//输出
{
    L*p;
    p=l;
    while(p->next!=NULL)
    {
        printf("%d",p->next->data);
        p=p->next;
    }
}
int main()
{
    L*l;
    creat(l);
    printlist(l);
    return 0;
}
指针不是可以对形参内容进行修改吗?但为什么上面的程序得不到结果呢如果把程序改成:
#include<stdio.h>
#include<malloc.h>
typedef struct node
{
    int data;
    struct node *next;
}L;
L* creat(L*l)//创建链表
{
    L *p,*q;
    l=(L*)malloc(sizeof(node));
    l->next=NULL;
    p=l;
    q=(L*)malloc(sizeof(node));
    printf("请输入数据:\n");
    scanf("%d",&(q->data));
    while(q->data!=-1)
    {
        q->next=p->next;
        p->next=q;
        p=q;
        q=(L*)malloc(sizeof(node));
        scanf("%d",&(q->data));
    }
    return l;
}
void printlist(L *l)//输出
{
    L*p;
    p=l;
    while(p->next!=NULL)
    {
        printf("%d",p->next->data);
        p=p->next;
    }
}
int main()
{
    L*l;
    l=creat(l);
    printlist(l);
    return 0;
}
就可以得到结果了呢???
搜索更多相关主题的帖子: 指针 困惑 
2008-10-15 16:13
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
收藏
得分:0 
不返回l 怎么会有l=creat(l)呢?
2008-10-15 17:15
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
typedef struct node
{
    int data;
    struct node *next;
}L;
void creat(L**l)//创建链表
{
    L *p,*q;
    *l=(L*)malloc(sizeof(node));
    (*l)->next=NULL;
    p=*l;
    q=(L*)malloc(sizeof(node));
    printf("请输入数据:\n");
    scanf("%d",&(q->data));
    while(q->data!=-1)
    {
        q->next=p->next;
        p->next=q;
        p=q;
        q=(L*)malloc(sizeof(node));
        scanf("%d",&(q->data));
    }
//    return l;
}
void printlist(L *l)//输出
{
    L*p;
    p=l;
    while(p->next!=NULL)
    {
        printf("%d",p->next->data);
        p=p->next;
    }
}
int main()
{
    L*l;
    creat(&l);
    printlist(l);
    return 0;
}
2008-10-15 17:24
快速回复:关于指针的困惑(请高手指点)
数据加载中...
 
   



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

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