参数传递

函数调用过程:

1.函数调用离不开。栈是一种数据结构,具有先进后出的特点,也就是说最先进入栈的数据总是最后从栈里出来。
2.函数调用时,需要处理初始化和善后的工作,这些都是在栈空间里完成的。
函数调用按照以下步骤进行:
1.在栈里保存函数调用现场和函数返回地址,以便当函数调用完毕后,能返回主调函数,并且能让程序继续往下执行。
2.在栈里给形参分配空间。
3.计算实参表达式的值,然后将这个值拷贝给形参。
4.执行函数体。
5.函数体执行完毕后,通过弹栈操作释放形参所占的空间,并且得到返回地址和调用函数的现场状态,返回主调函数。
函数调用方式:
1.函数调用的一般形式:

  函数名(实参表)

若被调用的函数的没有参数,则实参表为空。

2.通常可以采用下面的方式来调用函数:
a.不需要返回值   b.需要返回值,并且返回值参与运算
 
 
根据函数的参数传递的不同,函数调用可以分为函数的值传递调用(传值调用)、函数的指针传递调用(传址调用)和函数的引用传递调用。
 
传值调用—— 将函数的实参表达式的值 拷贝 给形参。这样,实参变量和形参变量占据的是不同的存储空间,因此在函数里对形参变量的改变不会影响到实参变量的值。当函数返回时,由于对栈的操作,形参所占据的存储空间就被系统收回了,也就是说形参变量的值消失了。
这样做的好处是:通过这样的方式将形参和实参隔离,使函数与函数之间的关联减到最低,有利于实现模块化的设计,同时我们也不需要为要不要在调用函数之前保存实参的值而操心。
} 在以下情况,使用函数的值传递调用方式不太恰当或者不能达到目的:
在以下情况,使用函数的值传递调用方式不太恰当或者不能达到目的:
1.要传递的参数是一个比较大的自定义的复杂数据类型,如果按值转递方式,需要将这个复杂的数据类型在被调用的函数的栈空间复制一份,这样对时间和空间的开销都比较大。
2.有时需要在被调用函数里改变实参变量的值。 这时,可以使用函数的 指针传递调用 的方式来传递参数。
 
指针传递调用:
方法是 将函数的形参声明为指针 ,然后在函数调用时,将实参的地址传递给形参 。在 参数传递时,是将实参的地址复制给形参
被调函数里 ,对 形参指向的内存空间进行操作,实际上就是对主调函数里的实参变量进行操作。因为函数的指针传递调用传递的是地址,所以函数的指针传递调用又称为 传址调用
 
引用传递调用:
函数也可以通过 引用 来传递参数。使用引用传递参数与传递指针的效果一样。如果将形参定义为引用,那么当进行参数传递时,实际上是将形参与实参绑定起来,让形参成为实参的别名,而并不是将实参拷贝了一份给形参。因为形参是实参的别名, 所以对形参的操作等同于对实参变量的操作
 
各种数据结构的参数传递(待续。。。。。。。)
字符串、数组、容器等。。。。。。。。。
 
 
 
 
 
 
 
 
 
 

 

"sgmediation.zip" 是一个包含 UCLA(加利福尼亚大学洛杉矶分校)开发的 sgmediation 插件的压缩包。该插件专为统计分析软件 Stata 设计,用于进行中介效应分析。在社会科学、心理学、市场营销等领域,中介效应分析是一种关键的统计方法,它帮助研究人员探究变量之间的因果关系,尤其是中间变量如何影响因变量与自变量之间的关系。Stata 是一款广泛使用的统计分析软件,具备众多命令和用户编写的程序来拓展其功能,sgmediation 插件便是其中之一。它能让用户在 Stata 中轻松开展中介效应分析,无需编写复杂代码。 下载并解压 "sgmediation.zip" 后,需将解压得到的 "sgmediation" 文件移至 Stata 的 ado 目录结构中。ado(ado 目录并非“adolescent data organization”缩写,而是 Stata 的自定义命令存放目录)目录是 Stata 存放自定义命令的地方,应将文件放置于 "ado\base\s" 子目录下。这样,Stata 启动时会自动加载该目录下的所有 ado 文件,使 "sgmediation" 命令在 Stata 命令行中可用。 使用 sgmediation 插件的步骤如下:1. 安装插件:将解压后的 "sgmediation" 文件放入 Stata 的 ado 目录。如果 Stata 安装路径是 C:\Program Files\Stata\ado\base,则需将文件复制到 C:\Program Files\Stata\ado\base\s。2. 启动 Stata:打开 Stata,确保软件已更新至最新版本,以便识别新添加的 ado 文件。3. 加载插件:启动 Stata 后,在命令行输入 ado update sgmediation,以确保插件已加载并更新至最新版本。4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值