形参与实参变量

    对于exchange与realexchange的关系与区别,这两个变量实际上只是在形参变量与实参变量值传递上,exchange的修改不会改变realexchange的值,只是把exchange的值复制了一份赋值给了realexchange。

对于这里面的变量修改与改变可以引入堆栈这个概念,实参的空间是固定的,在进行给实参变量赋值的的过程中,有两点是需要注意的,第一,形参与实参是单向传递的,第二,无论形参变量如何修改,绝对不会改变实参表达式原本的值,在堆栈系统里面,先从右向左依次计算出值,并放入系统堆栈,先将实参入栈,再将形参入栈,栈底指针执行主函数之后回落,在执行子函数的时候立即移到栈顶的位置,栈顶以上赋值给函数的局部变量,这就是正负的地址编号的由来。

在一个程序里面函数的声明和函数的定义都是形参变量的产生过程,对于底下的main主函数的调用里面不会改变形参的值,反之,对于形参变量的改变也无法在实参表达式里面直接体现,就像改变上述形参,但是实参变量在上一次的运算中已经赋值过了,这次改变形参变量并不会改变实参变量的值,照此输出还是会输出原来实参变量值,呢么这种问题也是有解决办法的

在一个程序中如果想要改变实参变量的值,可以改变指针和取地址,在形参变量里面定义一个指针变量,在底下的实参中&即可在修改实参的同时,修改实参变量了,这个过程我还是需要很多时间去理解和练习,否则很容易出错,还有对于堆栈系统的“保护现场”有很多的疑惑,比如说它到底是在堆栈系统的哪一个位置,产生之后什么时候进行调用,这就是我对本周课的全部理解和认识,还有问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值