标题:关于论坛老帖子里的一个问题
只看楼主
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
已结贴  问题点数:20 回复次数:7 
关于论坛老帖子里的一个问题
原帖子https://bbs.bccn.net/viewthread.php?tid=372077&page=1#pid2532510
typedef        struct    BTNode            // B树结点                        
{
    int                keynum;            // 每个结点关键字个数            
    struct    BTNode    *parent;        // 父亲指针                    
    KeyType            key[m+1];        // 关键字数组,0号单元未用
    struct    BTNode    *ptr[m+1];        // 子数指针
    Record            *rec[m+1];        // 记录指针,0号单元未用
}BTNode,*BTree;                        // B树节点类型和B树类型
typedef        BTree    Library;

void    InitLibrary(Library L)
// 初始化书库L为空书库。
{
    L = NULL;
}
我想的对么?
这里他并没有对L初始化,原因是他让指针指向空,并没有返回那个指针并赋值。
函数里将地址传递给指针改变的是地址中的内容并不是指针本身。


搜索更多相关主题的帖子: parent 关键字 记录 
2015-10-30 19:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
今天早上剛提及這個問題

授人以渔,不授人以鱼。
2015-10-30 22:07
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:10 
基本可以这样理解,要影响调用者传送的实参必须传址,如果是要改变指针参数的指向,那你就只能设计函数的形参为二级指针了,如下:
#include <stdio.h>
void f(int **p)
{
    int i=10;
    *p=&i;  //如果这里改为NULL,则会在printf时显示内存不能read
}
void main()
{
    int i=5,*p=&i;
    f(&p);
    printf("%d\n",*p);  //这样一来,虽然可以正常显示10,但实际指针p已经是个野指针了
}

能编个毛线衣吗?
2015-10-30 22:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:10 
以下是引用TonyDeng在2015-10-31 10:58:41的发言:



這裏說的是“變量”,變量是在棧中分配的。指針也是變量,同樣要占用棧空間。然而指針所指向的對象,卻既可以是變量,也可以是在堆中分配的數據體——後者必須用指針指向才能訪問。指針尋訪數據,是用一個對象(object)尋訪另一個對象(object),有兩個對象(object),初學者常犯的錯誤,是把指針和它所指向的對象混淆!


授人以渔,不授人以鱼。
2015-10-31 11:46
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
得分:0 
回复 3楼 wmf2014
这几天忙着看与C完全无关的却又是老板布置的教程好心塞
截图了带回宿舍看
2015-11-01 22:04
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
得分:0 
回复 4楼 TonyDeng
。。。是啊。。我得仔细思考了
2015-11-01 22:05
蔡瑞圣
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-11-1
得分:0 
2015-11-01 22:21
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
得分:0 
回复 3楼 wmf2014
我刚想了一下将二级指针当成地址的地址,地址a中的内容为地址b,地址b中的内容是常数
改变地址b中的内容用一级指针
改变地址b用二级指针
2015-11-02 20:00



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




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

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