| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3076 人关注过本帖
标题:(具体看附上的代码,谢谢大神)为什么pRootNode指针得不到数据,明明调用函 ...
取消只看楼主 加入收藏
fengdawei91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-2-9
结帖率:0
收藏
 问题点数:0 回复次数:4 
(具体看附上的代码,谢谢大神)为什么pRootNode指针得不到数据,明明调用函数传输函数参数的是地址,在函数内部开辟了地址,为什么还是传不出来?
为什么pRootNode指针得不到数据,明明调用函数传输函数参数的是地址,在函数内部开辟了地址,为什么还是传不出来?如果把函数void TestFunction(Node *pNode)修改成void TestFunction(Node *&pNode)就没问题了,关键是搞不通,问什么传入的是地址还是不能修改呢?求大神指点

#include "stdafx.h"
#include <stdlib.H>

typedef struct Node
{
    int pData;
    Node *pNext;
    Node *pPrevious;
    Node *pParent;
}Node;

void TestFunction(Node *pNode);

int main(int argc, char* argv[])
{
    Node *pRootNode=NULL;
    TestFunction(pRootNode);

    return 0;
}

void TestFunction(Node *pNode)
{
    pNode=(Node*)malloc(sizeof(Node));
    pNode->pData=1;
    pNode->pParent=NULL;
    pNode->pNext=NULL;
    pNode->pPrevious=NULL;
}
搜索更多相关主题的帖子: include 
2017-02-21 11:08
fengdawei91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-2-9
收藏
得分:0 
明白了,自己总结一下,如果不对请大侠给指正。
首先,这是指针传递的例子。定义一个指针变量a,char *a="nihao";其中a存储的就是"nihao"的地址,*a="nihao"。但同时指针变量a又有自己的地址,可以采用&a得到a的地址。
pNode和pRootNode都是一个指针变量,存放的是其它变量的地址,但是pNode和pRootNode本身为变量,自己也有自己的地址。假如pRootNode="Test";则子函数中的pNode指向的是"Test",pNode和pRootNode是不同的指针(pNode和pRootNode是不同的地址),但他们存储的都是"Test"这个变量的地址,都指向"Test"这个变量,也就是说pNode=*pRootNode,pNode=pRootNode,但是&pNode!=&pRootNode,所以对pNode指针进行修改并不会影响pRootNode,只不过是pNode指针指向了别处。
2017-02-21 15:29
fengdawei91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-2-9
收藏
得分:0 
回复 3楼 azzbcc
恩恩,谢谢大神补充,嘿嘿
2017-02-21 21:57
fengdawei91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-2-9
收藏
得分:0 
回复 4楼 xzlxzlxzl
恩恩,大神,指针的指针就是指针变量的地址吧?我感觉是这样的,双指针不太会用,我用的是引用,大神,这两个道理都差不多吧应该?
2017-02-21 21:59
fengdawei91
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2017-2-9
收藏
得分:0 
回复 7楼 书生牛犊
谢谢大侠,学习啦,哈哈
2017-02-27 17:00
快速回复:(具体看附上的代码,谢谢大神)为什么pRootNode指针得不到数据,明明 ...
数据加载中...
 
   



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

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