首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言函数调用详解】——调用&址调用

一.调用 什么是调用呢?顾名思义,调用就是直接将实参的传递给形参。...这样形参和实参的是一样的,但是函数的形参和实参分别占有不同的内存块,实参是一个独立的个体,形参也是一个独立的个体,只是形参的与实参相同。..., num2); printf("Swap1::num1 = %d num2 = %d\n", num1, num2); return 0; } 我们来简单分析一下这段代码: 根据我们的分析,调用好像不能达到交换...num1,num2的目的,我们看看结果是什么样的: 因此,调用,要想在函数内部交换两个变量的,是不可行的。...以上就是对函数调用的两种方式,调用和址调用的介绍,欢迎大家指正,我们一起进步!!!

62510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    地址

    很多语言在参的时候都有一个地址(或者是引用)的问题,我想用 C++ 语言来简单的描述一下。...因为我觉得无论是还是址,C 或者 C++ 这两种语言都是能够比较直观的描述清楚的语言,原因是可以容易的去观察内存。其他语言也可能可以,只是其他语言的我不太知道如何去做。...从图中可以看到,a 的地址是 0x0019fe18,b 的地址是 0x19fe1c。 注意看上面两张图,两个地址下面都是保存的实际的。...对于第一段和第二段代码在 C++ 中称为,对于第三段和第四段代码在 C++ 中称为地址。地址和在内存中本身都是一个,只是具体分类是做了区别而已。...NO.6 Java 参 Java 中说的参全部是,但是当形参是一个对象的时候,其实相当于的是一个地址。因为变量中本身就保存的是一个地址,而不是一个

    2.3K40

    址与

    这里将讲述址与的区别,先见下图。 这是的过程,我们明明把a,b作为实参传过去了。可以看到,交换后的a,b并没有达到我们的预期。为什么会这样呢?...其实是因为,的时候,形参是临时创建的,在执行完swap函数后,他们又自动销毁了,从而导致a,b的并没有交换。如果想要改变实参的,我们就需要进行址,而不是。...见下图 我们通过把a和b的地址传给了形参,形参就能通过地址,找到a,b,以此来改变a和b的。此时我们的实参就改为&a和&b,注意swap函数的形参类型是int*,这样就能交换a与b的啦。...总结::形参是实参的一份拷贝,函数运行起来后,实参是实参,形参和实参没有任何关联,改变形参时,不会对实参造成影响。            ...址:形参是实参地址的一份拷贝,形参指向的实体是实参,对形参解引用后,拿到的内容就是实参,因此,对形参解引用后的内容进行修改,改变的就是实参。

    10610

    往期文章 【JS ES6】const var let 一文搞懂声明关键字所有的知识点 目录 什么是  例  址 什么是址 例  ---- 什么是 let a = 1; let...b = a; console.log(a, b); //1 1 是获取一份儿相同的,并自身重新开一份儿属于自己的内存地址,两个变量是互相独立的并不会互相影响。  ...例  let a = 1; let b = a; b = 2; console.log(a); console.log(b); 修改了b的,a的不会受到影响,这就是,两者是独立的存在,引用内存比较小的引用赋值一般都是...址 什么是址 let a = { name: "xiaoxie", }; let b = a; console.log(a, b); 是获取一份儿相同的,不会自身重新开一份儿属于自己的内存地址...两者使用同一个内存地址,一般引用占用内存较大的变量时,会址,比如对象和数组。

    2.7K20

    C语言】指针进阶之调用与址调用

    ✔在编程语言如C中,调用和址调用是用来传递参数给函数的方法。它们的主要区别在于参数传递的方式: ☞调用:这是最基本的参数传递方式,它涉及将参数的复制一份传递给函数。...在函数内部,对这些复制的进行的任何修改都不会影响到原参数的,因为函数只是在自己的局部范围内操作这个副本。 ☞址调用:这种方式则是将参数的地址传递给函数。...2.调用举例说明 #include void Swap1(int x, int y) {  int tmp = x;  x = y;  y = tmp; } int...✔址调⽤,可以让函数和主调函数之间建⽴真正的联系,在函数内部可以修改主调函数中的变量; 4.结论 所以未来函数中只是需要主调函数中的变量值来实现计算,就可以采⽤调⽤。...如果函数内部要修改主调函数中的变量的,就需要址调⽤。

    12810

    vue学习 十五 引用 or 事件(子父)

    引用: 的就是对象(object)和数组(array); 的就是字符串(string)、布尔(boolean)、数值(number); 主要表达的意思是: 在父传子组件中,数据写在父组件时...;引用的时候,改变一个数组或者对象都是将所有的改变;的话,改变哪个就是改变哪个,不会影响到其他。。...在这里,通过pop方法出栈数组元素,然后点击一个删除,两个相同数组中的li都会减少一个1个,从而说明了引用的时候改变数组中的元素,所有的都将改变 ?...事件(子父): 首先是子组件中,定义一个点击事件触发方法,然后方法为注册事件,如下。...然后执行方法后就会在父组件中去找这个’事件名‘ $emit('事件名',’事件的内容是什么‘); ?

    2.6K10

    react 父子_react 父子组件 兄弟组件「建议收藏」

    一、子向父组件 方法一: 父组件 //方法 parentFn(data1, data2, e) { // 按照参数排列 最后一个是event console.log(data1, data2,...可以看 `二、子组件向父组件方法二` 一样的意思 二、子组件向父组件方法 方法一:绑定this 父组件 //父 – 点击调用 子 clickChild = (e) => { this.child.myChild...参考 `一、子向父组件方法一` 一样的 个方法过去 子组件调用了 就是掉了父的方法了 五、兄弟组件 / 各种组件 封装的像vue的Bus中央事件总线 及其优秀 有兴趣的可以看一下 https...://www.cnblogs.com/chen-yi-yi/p/11152391.html vue的bus 记得两个组件中 都需要引入js 使用方法如下 eventProxy.trigger(...做你想做的事 }) }) ​ ​ 如果多个 可以拼成对象 或者 写成数组 这个js不支持序列传 ​ 例如: eventProxy.trigger(‘名字’, [‘1′,’2’]) ​ 取值

    2.4K20

    5分钟搞懂C语言的

    补全下面的函数使其交换x,y的。 #include "stdio.h" //编写swap函数交换x,y的。...为了方便说明,我们用图来展示参数是如何进行的。...从图中清楚地发现,在函数的调用过程中实现的是main()函数里参数x和y的,即把main()函数里参数x和y的传递给swap函数里x和y,swap()函数中的x和y拥有自己的存储空间,所以接下来在...图中可以清楚地发现,在函数的调用过程中实现的是参数x和y的址,即把x和y存储单元的地址传递给px和py,swap()函数中的形参不再拥有自己的存储空间,它们分别指向x和y的存储单元,所以接下来在swap...这也是在采用址的时候修改形参也会影响实参的原因。 通过以上实例是不是就能很容易理解C语言的址。

    46910

    组件

    vue组件之间的大致分为三种:父组件给子组件,子组件给父组件,兄弟组件之间 本文主要介绍vue组件之间简单的数据传递,如果组件之间传递的数据比较复杂,建议使用vue的状态管理模式 vuex...父组件给子组件 1.父组件通过props给子组件 props 就是父组件给子组件标签上定义的属性,用来接收父组件传递的数据,props 的可以是字符串数组,也可以是各自的名称和类型,用法和...data 中的数据用法一样,在子组件中只能使用该,不能修改 父组件vue文件: //父组件自定义msg属性给子组件 <Child...,并不太适合向多个子组件传递数据 provide/inject 侧重于在开发高阶插件/组件库时使用,并不推荐用于普通应用程序代码中 子组件给父组件 1.子组件通过触发$emit事件给父组件 $emit...$emit触发自定义事件给子组件B eventBus.

    1.8K10

    C++如何禁止函数的调用

    代码编译运行环境:VS2017+Debug+Win32 ---- 按照参数形式的不同,C++应该有三种函数调用方式:调用、引用调用和指针调用。...对于基本数据类型的变量作为实参进行参数传递时,采用调用与引用调用和指针调用的效率相差不大。但是,对于类类型来说,调用和引用调用之间的区别很大,类对象的尺寸越大,这种差别越大。...调用与后面两者的区别在于调用在进入函数体之前,会在栈上建立一个实参的副本,而引用和指针调用没有这个动作。建立副本的操作是利用拷贝构造函数进行的。...原因是如果拷贝构造函数中的参数不是一个引用,即形如A(const A a),那么就相当于采用了的方式(pass-by-value),而的方式会调用该类的拷贝构造函数,从而造成无穷递归地调用拷贝构造函数...作为实参以传递的方式传递给一个函数; c. 在函数体内返回一个对象时,也会调用返回类型的拷贝构造函数; d. 需要产生一个临时类对象时(类对象作为函数返回会创建临时对象)。

    2.4K30

    python参是还是引用

    例如,a = []是一个空列表对象,变量 a 是该对象的一个引用 例1 def test(c): c.append("hello world") print(c,id(c)) return list...因此,如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始--相当于通过“引用”来传递对象 例2 def test2(p): p = "i in test2" print(p,...因此,如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“'来传递对象。 总结: Python参数传递采用的肯定是“传对象引用”的方式。...这种方式相当于引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始--相当于通过“引用”来传递对象。...如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“'来传递对象。

    3.6K150
    领券