为了账号安全,请及时绑定邮箱和手机立即绑定

为什么传入的节点要用指针

直接用整型的数不行吗?为什么要用指针,传值的时候还得写取地址符号

正在回答

7 回答

可以传整型数,但很多时候传入的结点的类型并不像整型这么简单,而是一个对象。这样的话,如果传指针就会比直接传值效率要高一些,我想老师是考虑到大多数情况才选用传指针参数的,如果你担心在函数中会修改传入的参数的话,可以将其修饰为const,这样更加保险!希望对你有帮助~

0 回复 有任何疑惑可以回复我~

void test(struct *p,int &num2)
{
num2=(你p中要找的数); 
}//此时在主函数可以通过num2来查看你找到的数

0 回复 有任何疑惑可以回复我~
#1

伏雀 提问者

如果只是增加一个结点,那是否视频中传入值所用的指针或引用就是多此一举。
2016-12-06 回复 有任何疑惑可以回复我~

可以, num2可以不用引用

0 回复 有任何疑惑可以回复我~
#1

伏雀 提问者

但视频中有这种情况 比如 void test(int& num1,int& num2) { num1=num2; //num2也使用了指针或引用 }
2016-12-06 回复 有任何疑惑可以回复我~

但你需要向原来的树上插入,因此传进来的树应该是指针或引用,这样原来的树才会被修改

0 回复 有任何疑惑可以回复我~
#1

伏雀 提问者

那改变的应该是原来的树,所以传入的树应该是指针或引用,但传入的结点应该只需要单向传入而并不需要被改变
2016-12-06 回复 有任何疑惑可以回复我~
#2

伏雀 提问者

比如 void test(int& num1,int num2) { num1=num2; //num2不使用指针或引用是否都能改变传入的num1的值? }
2016-12-06 回复 有任何疑惑可以回复我~

如果你用值传递,在函数中只是单向传递,你在函数中对原来的数据进行修改,数据只会在函数中改变,如果出了这个函数,外面的相当于没有修改,引用是绑定在某一个对象身上,这里引用绑定的对象时指针,引用只是对象一个别名,就相当于去地址操作。

0 回复 有任何疑惑可以回复我~
#1

伏雀 提问者

进行ADD结点时传入一个结点的值,好像并不要对传入的值进行修改
2016-12-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么传入的节点要用指针

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信