函数传递引用 与 直接操纵全局变量 消耗资源的区别

区别:函引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

传递引用

在C++中,函数参数的传递方式有引用传递。所谓引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。引用传递(pass-by-reference)过程中,被调函数的形式参数虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。

全局变量

全局变量是编程术语中的一种,源自于变量之分。变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

延伸阅读:

什么是计算机函数?

计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。

文章标题:函数传递引用 与 直接操纵全局变量 消耗资源的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38861

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月20日 上午12:29
下一篇 2023年2月20日 上午12:31

相关推荐

  • jsp非法字符有哪些

    jsp非法字符有:1、< (小于号);2、>(大于号);3、& (和号);4、” (双引号);5、’ (单引号);6、/ (斜杠);7、% (百分号);8、! (感叹号);9、@ (at符号);10、$ (美元符号)等。这些字符在JSP页面中必须进行转义或避免使…

    2023年3月25日
    1600
  • 为什么Dropbox等大型服务使用Python作为主要语言

    Dropbox是一个大型服务,使用Python作为主要语言,这是因为Python具有很多优点:一、高级语言;二、解释型语言;三、可移植性;四、面向对象;五、强大的功能;六、开源;七、可扩展性和可扩充性;八、可嵌入性;九、丰富的库;十、规范的代码。 一、高级语言 Python是一种高级语言,因此在使用…

    2023年4月13日
    2300
  • 为什么Python2和Python3造就了社区分裂

    主要问题还是因为 Python 的动态性。因为python2有太多的设计缺陷,以至于python3如果要兼容Python2将会是一个几乎难以完成的任务,所以,guido放弃了对python2的兼容。同时,内置字符串从二进制存储改为 unicode 存储的步子太大了,导致这不只是语法方面的变化,而是整…

    2023年2月21日
    3000
  • 如何做需求管理及原型管理

    要做到:一、建立需求来源和接受渠道;二、记录需求变化;三、审查要求并达成共识;四、达成项目共识;五、识别项目工作与需求之间的矛盾,并采取纠正措施;六、双向跟踪维护。为避免需求管理的混乱,规定谁接受需求,哪些人可以提出需求。 一、建立需求来源和接受渠道 需求收集,包括被动和主动的需求收集,其中主动的需…

    2023年3月22日
    2700
  • 单例模式与类名静态方法调用的区别

    区别是:单例模式属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例。静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用。 单例模式 单例模式,属于创建类型的一种常用的软件设计模式。通…

    2023年2月13日
    3500
  • printf函数常量堆栈是怎么样进行的

    在 printf 函数调用之前,参数从右向左入栈。调用 call 指令,此时存储在指令寄存器 ip 中的值是 printf 函数下一条语句对应的机器指令的地址,该地址入栈,同时指令寄存器 ip 的值修改为 printf 函数在代码段中的第一条指令的地址。 一、过程 在 printf 函数调用之前,参…

    2023年4月9日
    3000
  • Java9和Java11区别

    Java9和Java11的区别在于:1、本地变量类型推断;2、字符串增强;3、集合增强;4、Stream 增强;5、Optional 增强;6、InputStream 增强;7、HTTP Client API;8、化繁为简,一个命令编译运行源代码。局部变量类型推断就是左边的类型直接使用 var 定义…

    2023年2月20日
    4500
  • jira如何管理项目

    jira管理项目包括以下步骤:一、需求管理;二、Sprint Planning;三、Sprint阶段;四、Sprint结束;五、发布上线。需求管理由产品经理PO提出确定需要做的需求,然后在JIRA里自己的项目下,建立需求Issue,指派给PO。如果需求比较小,则建立需求的Issue类型选择Story…

    2023年3月21日
    3700
  • static 和 final 的区别有哪些

    static 和 final 的区别是:final被修饰的变量为常量一旦赋值不能修改,被修改的方法为最终方法不能被重写,被修饰的类是最终类,不能被继承。static被修饰的变量和方法,为该整个类及其类的对象所共享,一个类或对象修改了被定义的类或方法,其他的也会跟着变量。 static(全局变量) s…

    2023年2月12日
    14100
  • 伪代码到底有什么意义

    伪代码的意义:1、更易阅读;2、简化代码构建;3、流程图和代码之间的桥梁;4、文档的有用起点;5、允许快速检测错误。更易阅读是指,使用伪代码来解释代码的机制使不同专业之间的通信更容易、更高效。 一、伪代码的意义 1、更易阅读 通常,程序员与其他领域的人一起工作,如数学家、经理和业务合作伙伴。使用伪代…

    2023年4月13日
    4900

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部