社区
数据结构与算法
帖子详情
指针的问题????????UP有分.
iceadf
2003-08-26 09:57:25
再链表插入的函数中为什么头节点是指针的指针类型.好像就用指针就可以呀.
大家能不能解释一下.明白后马上结帖.再止谢过.
...全文
15
13
打赏
收藏
指针的问题????????UP有分.
再链表插入的函数中为什么头节点是指针的指针类型.好像就用指针就可以呀. 大家能不能解释一下.明白后马上结帖.再止谢过.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
FishCrazy
2003-08-27
打赏
举报
回复
UP ;)
FishCrazy
2003-08-27
打赏
举报
回复
我看你关键是要理解
传值还有传地址两者的定义以及它们之间的差别
wangmin_yjitx
2003-08-27
打赏
举报
回复
up
challengecxi
2003-08-27
打赏
举报
回复
对于数据结构一些问题,不妨到下面网址下载一个演示软件,挺有用的。
http://www.cnitexam.com/down/index.php?o=display;id=25
challengecxi
2003-08-27
打赏
举报
回复
*p改变以后,p的值是不变的(p是一个地址值,*p是p指针所指向的类型值)。**p是指向指针类型的指针,*p改变以后,**p的地址值不变,但其指向的类型值改变。
其实,函数调用可以用指针的引用,这样就能改变形参的值,对于你的程序第一行若改为“seqtree * & root”,函数里的语句改变root后,推出函数以后root的值就会改变,下面这个简单的例子希望能帮你理解
#include<iostream>
using namespace std;
struct node
{
int d;
node * next;
};
void insert(node * & r)
{
int ins;
cin>>ins;
node * ptr= new node;
ptr->next=0;
ptr->d=ins;
r->next=ptr;
}
int main()
{
node *p=new node;
p->d=3;
p->next=0;
insert(p);
while(p)
{
cout<<p->d<<endl;
p=p->next;
}
return 0;
}
这个函数当输入完ins以后输出应为
3
ins
wbh0360
2003-08-27
打赏
举报
回复
可以啊,不过不知道你程序怎么写的?
boodweb
2003-08-26
打赏
举报
回复
哦,那这样的话应该是seqtree **root才对阿,否则编译的时候怎么会出问题阿
用指针的指针应该是为了能够改变root吧(用*root=ins),否则root不可能改变
btw:程序里的root=ins是不是要写成*root=ins呢
iceadf
2003-08-26
打赏
举报
回复
to challengecxi(challenge):
int **p, 按你的意思,如果*p的值改变的话,那*p,p,**p.这三个值将如何改变呀。/
iceadf
2003-08-26
打赏
举报
回复
void insert(seqtree *root, int val)
{
seqtree *ins,*p=root;
ins=new seqtree;
ins->value=val;
ins->left=ins->right=NULL;
if(root==NULL)
{
root=ins;
return;
}
for(;;)
{
if(p->value<ins->value)
{
if(p->left==NULL)
{
p->left=ins;
break;
}
else p=p->left;
}
else
{
if(p->right==NULL)
{
p->right=ins;
break;
}
else p=p->right;
}
}
}
比如说上面这个排序二叉树的插入函数,其形参就一定要是指针的指针,如果换成是指针就编译出问题。
challengecxi
2003-08-26
打赏
举报
回复
我在做数据结构上机作业时就在这个问题上纠缠了好久TT
challengecxi
2003-08-26
打赏
举报
回复
指向指针(假设为ptr1)的指针类型(假设为ptr2)改变后,ptr1的值才会改变,你自己试试就知道了。
boodweb
2003-08-26
打赏
举报
回复
没看懂啊,能不能举个例子
链表还有这么一说吗?
SoftWare1999
2003-08-26
打赏
举报
回复
在不含头节点的链表中,返回第一个指针类型的地址
C++ 11 14 17 20内存管理-
指针
、智能
指针
和内存池
课程简介 C++ 11 14 17 20内存管理-
指针
、智能
指针
和内存池从基础到实战 学习计划 1. 每天学习一小时以上 2. 跟着视频动手编写代码 3. 调试代码并对比课程多提供的源码 课程目标 1. 理解
指针
...
什么是智能
指针
?为什么要用智能
指针
?
什么是智能
指针
?为什么要用智能
指针
?如何打破循环引用的
问题
?...常见的智能
指针
有几种,一种是共享
指针
shared_ptr,一种是独享
指针
unique_ptr,一种是弱
指针
weak_ptr,一种是很久没用过的auto_ptr(被u...
【堆】的实现
//指向数组的
指针
int _size;//表示堆中元素个数 int _capacity;//表示堆的容量 }Heap; 例:大堆 小堆: 2. 堆向下调整法 堆向下调整法的前提:根的左子树和右子树必须是一个堆 给出一个数组,逻辑上看做一颗完全...
c/c++编程学习:空
指针
是什么?
对于每一种
指针
类型,都有一个特殊的值——空
指针
,空
指针
与其他所有
指针
值区分开来,保证其不会指向任何函数或者对象等有意义的数据。因此,取地址运算符 & 永远不会产生空
指针
,malloc() 函数成功时永远不会...
指针
深度剖析——深入浅出解读悬空
指针
和指向
指针
,告诉你为什么不能没有
指针
但是,有那么多神奇的智能
指针
! 什么是调用堆栈和堆栈溢出.. 不能没有
指针
-案例1 不能没有
指针
-案例2 不能没有
指针
-案例3 不能没有
指针
-案例4 不能没有
指针
-案例5 不能没有
指针
-案例6 为什么
指针
如此强大 ...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章