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

来源:4-1 二叉树链表实现编码说明

伏雀

2016-12-05 19:58

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

写回答 关注

5回答

  • 黑巫师0
    2016-12-27 21:08:41

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

  • Kian_
    2016-12-06 18:49:27

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

    伏雀

    如果只是增加一个结点,那是否视频中传入值所用的指针或引用就是多此一举。

    2016-12-06 22:34:59

    共 1 条回复 >

  • Kian_
    2016-12-06 18:46:47

    可以, num2可以不用引用

    伏雀

    但视频中有这种情况 比如 void test(int& num1,int& num2) { num1=num2; //num2也使用了指针或引用 }

    2016-12-06 22:32:56

    共 1 条回复 >

  • Kian_
    2016-12-06 18:13:03

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

    伏雀

    比如 void test(int& num1,int num2) { num1=num2; //num2不使用指针或引用是否都能改变传入的num1的值? }

    2016-12-06 18:34:53

    共 2 条回复 >

  • Kian_
    2016-12-05 20:51:55

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

    伏雀

    进行ADD结点时传入一个结点的值,好像并不要对传入的值进行修改

    2016-12-06 17:32:15

    共 1 条回复 >

数据结构探险之树篇

树,将为你开启更精彩的数据结构大门,了解更多概念

56460 学习 · 116 问题

查看课程

相似问题