我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 值调用 >

C++里是不是不用引用调用就不能改变实参的值?

归档日期:07-08       文本归类:值调用      文章编辑:爱尚语录

  函数的调用分为引用调用和传值调用,自从知道了这个以后,我就觉得好多函数的实参都没有达到被改变的条件,我就分不清了,感觉没有用引用参数的函数都不能改变函数的实参值,这样想肯...

  函数的调用分为引用调用和传值调用,自从知道了这个以后,我就觉得好多函数的实参都没有达到被改变的条件,我就分不清了,感觉没有用引用参数的函数都不能改变函数的实参值,这样想肯定错了,错在哪里呢? 比如copy函数,原来是a(0.0)的copy后成了a(2.3)连实参都变了,为什么呢

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部你的“感觉”一点都不错:不用引用就改变不了实参。使用指针说改变了实参只是种误会,指针本身仍是拷贝,改变不了实参指针的内容;但可以通过指针来改变指针指向的目标——这和通过形参改变实参不是一回事!你举的copy例子也是不可能的:通过指针拷贝可以改变目标值是指针的作用,通过形参拷贝仍不能改变实参值。所以,只有引用传递才能改变实参的值。更多追问追答追问不是吧,指针当做形参进行函数运算,这是对应的实参就是引用了,而指针所指向的对象在函数运算结束后输出会发生变化啊,这不就是指针指针改变了它所指向的对象么。我的copy的例子就是课本上的呢,比如,类的对象A a默认初始化为(0.0.)接着它经过一个copy函数,该函数是让对象a copy 对象b(2.3)结束后输出a。a就变成(2.3)了啊追答指针就是指针,引用就是引用——指针是变量的地址,引用是变量的别名——不要混到一起。你说的copy函数我不知道它的形参是什么类型,我只知道除了引用,其他的函数形参都是传值的。你把copy函数的原型写出来就明白了……追问

本文链接:http://hotel-lermoos.com/zhidiaoyong/376.html