大家好,今天小编关注到一个比较有意思的话题,就是关于c语言地址传递的问题,于是小编就整理了1个相关介绍c语言地址传递的解答,让我们一起看看吧。
c语言中的引用到底是什么原理呢,为什么能改变原来的值?
C++里的引用就是“对象的别名”,注意这里的“对象”不是指一个类实例化后的对象,而是指“内存中的数据”。
除了通过名字a来访问这个对象,我们还可以通过指针访问这个对象:
不论是a还是*p,我们都是访问同一个对象,可以说a不等价于该对象,a也只是访问那个对象的一个途径,是该对象的一个名字而已。
所以在需要访问同一个对象,却又不希望使用指针时,我们就可以为这个对象再起一个名字(即别名):
引用一般都用在函数参数中,借助引用,我们可以做到访问实参对象的同时,避免指针操作,就像问题描述里的swap函数。
引用更大的用处,还是在操作符重载的时候:
***设operator+()不是引用而是指针:
那我们得这样写:
童鞋,你好!
首先 ,C语言中是没有引用的概念的,引用是C++中提出的概念!
其次,C语言中使用的是 指针传参 来实现引用效果,因为传入的是地址,而不是参数的拷贝。传入地址后,我把内容改了,自然就改了原来的值。
欢迎和我讨论交流!
误区
首先C语言没有引用,引用是C++里的东西。
其次:我猜测你应该想问的是C语言中地址传递为何能够修改实参,有如下实例程序:
至于为什么能实现修改,其实很容易理解。
函数调用过程中的实参与函数定义时的参数形参不是同一个内存,你可以直接理解为 形参实参的赋值操作。单纯使用的是形参的值,就像如下简单程序一样
明白一个点即可 *指针 表示地址对应的内存既是变量即可。
尾言
到此,以上就是小编对于c语言地址传递的问题就介绍到这了,希望介绍关于c语言地址传递的1点解答对大家有用。