| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:函数和指针的问题
只看楼主 加入收藏
sainimu78
Rank: 2
等 级:论坛游民
帖 子:57
专家分:26
注 册:2010-1-27
结帖率:100%
收藏
已结贴  问题点数:17 回复次数:1 
函数和指针的问题
比如这个 递归二叉树

#include <stdio.h>
#include <stdlib.h>
typedef int datatype;
typedef struct node
{   
    datatype data;
    struct node *lchild;
    struct node *rchild;
}BINTNODE;           
typedef BINTNODE * BINTREE;   /*把BINTNODE的指针类型命名为BINTREE*/               /*定义二叉链表指针类型*/

void createbintree(BINTNODE **t)   /*这里为什么要二级指针*/
{   
    int a;
     scanf("%d",&a);
     if(a==0)
         *t=NULL;
     else
     {  
         *t=(BINTNODE*)malloc(sizeof(BINTNODE));
     (*t)->data=a;
         createbintree(&(*t)->lchild);
         createbintree(&(*t)->rchild);
     }
}

void preorder(BINTREE T)         /*而这里不用二级指针~?*/           /*先序遍历序列*/
{
    if (T)                                          /*如果二叉树非空*/
    {
        printf("%d ",T->data);               /*访问根结点*/
        preorder(T->lchild);
        preorder(T->rchild);
    }
}

error(char *message)
{
    printf(stderr,"error:%s\n",message);
    exit(1);
}

main() /*主函数*/
{   BINTREE t=NULL;
    printf("\nPlease input nodes of BINTREE : ");
    createbintree(&t);               /*这里传的是地址 */
    printf("ok!\nthe preorder is:");
    preorder(t);                     /*那这里传的是啥~?*/
   
    getch();
}

搜索更多相关主题的帖子: 指针 函数 
2010-03-28 13:27
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:17 
用二级指针是因为函数要更改指针t的值,如果直接传t的话,函数只能修改形参的值,对t的值没有任何影响,原理同传指针改变变量值一样,只不过这个变量现在是指针而己.
其它的传什么都行,引用正确了就行了
2010-03-28 15:19
快速回复:函数和指针的问题
数据加载中...
 
   



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

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