数组当函数实际参数和普通变量当实际参数的差异

1、普通变量

参考下面这段代码,

 

 大多可能会认为程序会全部输出110,结果不然

这两段代码分别存在两个内存空间里面,main函数里面定义了一个data 它的值是10,地址为0061FF1C,当函数chang调用的时候,形参data才会被分配地址,地址为0061FF00,data = data +100,data = 110;但是main函数里面的data还是10,子函数里面的data是没有改变main函数里面change(data)这个函数里面的data这个实参的,实参里只是把值做了一个传递,在局部的修改的只是形参的地址里面的数据,mian函数里面的data是不会发生变化,都是data,但是地址不同,或者是定义的位置不同,

2、数组

看下面这个代码

 输出结果

输出都是101,解释:数值当做实际参数传递的时候,操作的是不同内存空间,数组传递的时候,操作的一定是相同的内存空间,数组名当做实参,传递的是(地址),main函数里面有两个数值,1,2;数组里面的1和2分别有各自的地址,往chang函数里面传的时候,传递的是地址,这个前面的文章里有介绍,chang里的data相当于是mian函数里面传过来的1的地址(首个地址),操作的时候相当于对data的首地址操作(1的地址),跟mian函数里面操作是一样的,都是1的内存空间.

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值