| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 509 人关注过本帖
标题:问一个关于链表的问题
只看楼主 加入收藏
nixk
Rank: 2
等 级:论坛游民
帖 子:32
专家分:12
注 册:2014-9-10
结帖率:83.33%
收藏
 问题点数:0 回复次数:4 
问一个关于链表的问题
程序代码:
#include <stdio.h>
#include <stdlib.h>

typedef struct TEST
{
    int x;
    int y;
    TEST *nextNode;
}test;

void
stepIn(TEST *head,int dx,int dy)
{
    TEST *front = (TEST *)malloc(sizeof(TEST));
    front->x = head->x + dx * 2;
    front->y = head->y + dy * 1;
    front->nextNode = head;
    head = front;
}

int
main(void)
{
    TEST *p1 = (TEST *)malloc(sizeof(TEST));
    int dx = 1,dy = 0;
    p1->x = 1;
    p1->y = 2;
    p1->nextNode = NULL;
    stepIn(p1,dx,dy);
    printf("%d %d\n",p1->x,p1->y);
    return 0;
}


输出结果是1 2
我预想中的结果是3 2
请教下原因
2014-10-21 23:38
hackrol
Rank: 4
来 自:世界和平组织
等 级:业余侠客
帖 子:62
专家分:267
注 册:2014-9-6
收藏
得分:0 
printf("%d %d\n",p1->x,p1->y);  你输出 的是是p1的值.当然是1 2  ...你改变的是局部变量叫front的那里的..stepIn 这个函数结束了就不可以访问了.
2014-10-22 07:04
nixk
Rank: 2
等 级:论坛游民
帖 子:32
专家分:12
注 册:2014-9-10
收藏
得分:0 
多谢了
2014-10-22 18:20
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
因为函数都是值传递的,形参不能传回实参。
2014-10-22 19:46
我是沙罗
Rank: 2
等 级:论坛游民
帖 子:8
专家分:11
注 册:2013-3-30
收藏
得分:0 
printf("%d %d\n",p1->x,p1->y);  你输出 的是是p1的值.当然是1 2  ...你改变的是局部变量叫front的那里的..stepIn 这个函数结束了就不可以访问了.
2014-10-22 20:44
快速回复:问一个关于链表的问题
数据加载中...
 
   



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

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