例题一:让原本指向空的两个指针,赋值

#include"stdio.h"

#include"malloc.h"
#include"string.h"
void TestFunction(char** ptr1, char*& ptr2)//我经常喜欢用 *&ptr2
{
*ptr1 = "abc";
ptr2 = (char*)malloc(6);
strcpy(ptr2, "abc");
}
int main()
{
char* ptr1 = NULL, *ptr2 = NULL;
TestFunction(&ptr1, ptr2);
printf("%s\n", ptr1);
printf("%s\n", ptr2);
free(ptr2);
}

例题二:二叉排序树的实现
#include"stdio.h"
#include"malloc.h"
struct node
{
int data;
node *right;
node *left;
};
void insert(node *&root,node *&s)//传递的参数是关键
{
if(root==NULL)
{
root=s;
}
else
{
if(root->data<s->data)//要插入的数据 data大于节点 则插入右边
insert(root->right,s);
else
insert(root->left,s);
}
}
void creatTree(node *&root,int a[],int n)
{
int i;
node *s;
//root=(node*)malloc(sizeof(node));//不要在这里初始化 或者申请空间之后 root=NULL;
for(i=0;i<n;i++)
{
s=(node *)malloc(sizeof(node));
s->data=a[i];
s->right=NULL;
s->left=NULL;
insert(root,s);
}
}
void outPut(node *&root)
{
if(root==NULL)
return;
else
{
outPut(root->left);
printf("%5d",root->data);
outPut(root->right);
}
}
int main()
{
int a[]={15,2,4,6,7,13,9,3,17,18,20};
node *root;
root=(node*)malloc(sizeof(node));//(申请空间大小)
root=NULL;//这一句一定不能少 (初始化)
creatTree(root,a,11);
outPut(root);
return 0;
}

转载于:https://www.cnblogs.com/JPAORM/archive/2011/11/29/2510077.html

【算法导论】指针作为形式参数时 改变指针所指的值(二叉排序树)相关推荐

  1. c一:指针引用(int * p )和指针(int * q)的区别

    #include <iostream>using namespace std;int g = 300;void print(int p, int q) {cout << p & ...

  2. linux c 两个指针相减,[转] C++指针加整数、两个指针相减的问题

    http://blog.csdn.net/onlyou930/article/details/6725051 说来惭愧,写C++有一段时间了.这个问题从来没有认真考虑过,此次标记于此: 考虑如下问题: ...

  3. c 指针地址 突然改变_开发笔记 - Cpp - 指针 - 1.1 如何理解指针

    写在最前 作为在贵乎的第一篇文章吧... 允许我加点废话(求轻喷... 应该是从19年的下半年开始,虽然顶着算法工程师的title,但做的很多事情都是开发了,然后19年12月跳槽之后,到了新的环境并开 ...

  4. 【C 语言】指针数据类型 ( 不允许向 NULL 地址写入数据 | 不允许不断地改变指针指向 | 字面量存放位置 )

    文章目录 一.不允许向 NULL 地址写入数据 二.不允许不断地改变指针指向 三.字面量存放位置 一.不允许向 NULL 地址写入数据 声明指针变量 , 并为其 设置 NULL 初始值 , NULL ...

  5. 试编写一个将双向循环链表逆置的算法_图解:链表的快慢指针,解决 80% 的链表面试题!...

    一.前言 链表是基本的数据结构之一,它与数组不同,数组在内存中存储,需要一块连续的内容空间来存储,对内存的要求比较高.例如我们需要 100MB 大小的数组,内存中就必须有一段连续的 100MB 的内存 ...

  6. C语言 | 改变指针变量的值

    例35:C语言编程实现改变指针变量的值. 解题思路: 指针p的值是可以变化的,printf函数输出字符串时,从指针变量p当时所指向的元素开始,逐个输出各个字符,直到遇'\0'为止.而数组名虽然代表地址 ...

  7. c语言中函数形参值改变了,相应的实参值是否改变,C语言中,如何利用函数和指针变量通过形参变量的值改变实参变量的值...

    必备知识:c语言中的函数调用和指针变量的相关知识 众所周知,函数是C语言中一个十分重要的模块,因为函数的存在,使得C语言的可读性.可维护性.可移植性大大提高.因此,想要学好C语言,必须要学好函数.函数 ...

  8. 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )

    文章目录 一.结构体中嵌套一级指针 1.声明 结构体类型 2.为 结构体 变量分配内存 ( 分配内存时先 为结构体分配内存 然后再为指针分配内存 ) 3.释放结构体内存 ( 释放内存时先释放 指针成员 ...

  9. 如何识别一个指针式的时种的时间?

    如何识别一个指针式的时种的时间? https://www.cnblogs.com/zjutlitao/p/4187476.html 转载于:https://www.cnblogs.com/AlvinL ...

最新文章

  1. swift通知栏推送_如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用
  2. 开源项目:windows下使用MinGW+msys编译ffmpeg
  3. PHP编译过程中常见错误信息的解决方法
  4. 【学习随手记】POSIX消息队列执行报Permission denied的问题。
  5. ITK:排序ITK索引
  6. jquery-基础事件[下]
  7. python-列表包字典的去重
  8. DataTables基本搭建攻略(后台分页)
  9. for each in for in for of
  10. 下载Eclipse IDE
  11. 安装“万能解码器”还原真实“解码”(纯以个人兴趣分析)
  12. Install: pymongo
  13. 计组(六)流水线技术
  14. 智能家居的应用研究现状
  15. html页面在ie上出现404怎么解决,ie浏览器网页上有错误解决方法详解
  16. 职业学校的老师教计算机,职业院校计算机教学方式方法分析
  17. K-Net 论文笔记
  18. NanoHttpd Demo是个好东西
  19. 「信号机制」Python信号处理—signal模块
  20. 莲:什么?朕的大清亡了?

热门文章

  1. Windows xp下IDT Hook和GDT的学习
  2. 定义化标签之文本元素
  3. 文件和目录:access函数
  4. wince内存配置(转gooogleman的工作日志)
  5. python-多线程共享内存
  6. [转]2020年4月github上最热门项目-python
  7. 那些让老板赞不绝口的可视化大屏,附模板和教程
  8. 连锁百货企业数据系统整理解决方案
  9. HashMap——ConcurrentHashMap
  10. java小项目图书管理系统_Java小项目迷你图书管理系统