首页 > 其他分享 >函数参数传递方式

函数参数传递方式

时间:2024-01-15 15:25:33浏览次数:32  
标签:传递 变量 方式 参数传递 地址 引用 拷贝 函数

两种传递方式:

  1. 值传递:基本数据类型int系列,float系列,bool,string,数组,结构体struct。(值类型)

  2. 引用传递:指针,slice切片,map,chan管道,interface等都是引用传递。(引用类型)

其实不管是值传递还是引用传递,传递给函数的都是变量的副本,不同的是,值传递的是值的拷贝,引用传递的是地址的拷贝。一般来说,地址拷贝效率高,因为数据量小,而值拷贝决定拷贝的数据大小,数据越大,效率越低。

值传递和引用传递的使用特点:

  1. 值类型默认是值传递,变量直接存储值,内存通常在栈中分配。

  2. 引用类型默认是引用传递,变量存储的是一个地址,这个地址对应的空间才真正的存储数据,内存通常在堆中分配。当没有任何变量引用这个地址时,该地址对应的数据空间就变成了一个垃圾。由GC回收。

  3. 如果希望函数内的变量能修改函数外的变量,可以传入变量的地址 &,函数内以指针的方式操作变量。从而达到引用传递的效果。

标签:传递,变量,方式,参数传递,地址,引用,拷贝,函数
From: https://www.cnblogs.com/mafu-blogs/p/17965374

相关文章

  • 页面无法右键及复制的两种方式(js 与 css)
    1、全局在body上设置属性:<bodyonselectstart="returnfalse"onpaste="returnfalse"oncopy="returnfalse"oncut="returnfalse">2、js控制页面无法复制:<scripttype="text/javascript">//Methodone//&l......
  • 一文看懂Excel纵向查找函数VLOOKUP
    VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用,例如可以用来核对数据,多个表格之间快速导入数据等函数功能。功能是按列查找,最终返回该列所需查询序列所对应的值;与之对应的HLOOKUP是按行查找的。  参数解析 ......
  • 【JaveWeb教程】(2)Web前端基础:JavaScript入门不再难:一篇文章教你轻松搞定JavaScript的
    目录1介绍2引入方式3基础语法3.1书写语法3.2变量3.3数据类型和运算符4函数4.1第一种定义格式4.2第二种定义格式html完成了架子,css做了美化,但是网页是死的,我们需要给他注入灵魂,所以接下来我们需要学习JavaScript,这门语言会让我们的页面能够和用户进行交互。1介绍通过代......
  • 管道通信(下)命名管道的使用实现简单的日志函数
     我们之前学习到的管道是没有名字的正因为没有没有名字所以最后选择的是让子进程继承父进程的方式来达到让父子进程看到同一份资源的方式。这也也就导致了匿名管道只能在具有血缘关系的进程进行进程间通信。但是我们需要进行进程间通信的场景并不是只有这一种的?如果是毫不相关的进......
  • Excel中使用VBA写个函数,包含什么文字就显示什么文字。
    需求如下:Excel的D列是包含文字,E列是显示文字,也即是对应表。B列是数据,C列写公式呈现结果。若B列的文字包含了D列其中某个单元格的文字,同时若E列对应行有文字,就显示E列的对应文字,否则显示D列的对应文字。   由于Excel的VBA年代久远,很少使用,因此决定使用AI来生成。一开......
  • Go中init函数和匿名函数
    init函数:每一个源文件中都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是init会在Main函数之前被调用。通常可以在init函数中完成初始化工作。import"fmt"funcmain(){ fmt.Println("main函数")//后输出}funcinit(){ fmt.Println("init方法")......
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
    场景Mysql中怎样设置指定ip远程访问连接:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/115308120前面设置root账户指定ip能连接访问是通过命令行的方式,如果通过可视化工具比如Navicat来实现。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现1、使用N......
  • SQL中的power()函数
    SQL中的POWER()函数用于计算一个数的指数。它的语法通常如下:POWER(base,exponent)其中base是基数,exponent是指数。使用场景指数计算:当你需要计算一个数的指数时,可以使用POWER()函数。快速计算幂:如果你需要多次计算同一个数的不同幂,使用POWER()函数可以减少计算量。生成连......
  • python多线程模块:threading使用方法(参数传递)
    先来看这段代码:importthreadingimporttimedefworker():print“worker”time.sleep(1)returnforiinxrange(5):t=threading.Thread(target=worker)t.start()这段代码就使用了多线程,但是没法传递参数,而实际使用多线程,往往是需要传递参数的......
  • Centos7 yum方式安装 mysql 5.6
    Centos7安装mysql5.6[root@server1~]#cat/etc/redhat-releaseCentOSLinuxrelease7.4.1708(Core)[root@server1~]#uname-r3.10.0-693.el7.x86_64一、安装MySQL前准备1)查看系统是否存在旧版本rpm-qa|grepmysql可能出现一到多个结果,也可能没有2)卸载旧版......