呼叫者|空投您需要的C / C ++中的参数传递技术

文章图片

文章图片

参数数据可以通过不同的方法传入和传出方法和函数 。 我们假设从另一个函数A()调用了函数B () 。 在这种情况下 , A被称为“呼叫者功能” , B被称为“被呼叫功能或被调用者功能” 。 同样 , A发送给B的参数称为实际参数 , B的参数称为形式参数 。
术语
- 形式参数:变量及其在函数或方法原型中出现的类型 。
- 实际参数:与在调用环境中的函数或方法调用中出现的形式参数相对应的变量或表达式 。
- 模式:IN:将信息从呼叫者传递到被叫者 。 OUT:被叫方将值写入呼叫者 。 输入/输出:呼叫者告诉被呼叫者变量的值 , 该值可以由被呼叫者更新 。
- 按值传递:此方法使用模式内语义 。 对形式参数所做的更改不会传输回调用方 。 对被调用函数或方法内的形式参数变量的任何修改仅影响单独的存储位置 , 并且不会反映在调用环境中的实际参数中 。 此方法也称为按值调用 。
输出:在函数中 , a = 12 b = 7总的来说 , x = 5 y = 7
诸如C , C ++ , Java之类的语言都支持这种类型的参数传递 。 实际上 , Java严格按值调用 。
缺点:
- 存储分配效率低下
- 对于对象和数组 , 复制语义非常昂贵
输出:a是20而b是10
C和C ++都支持按值调用以及按引用调用 , 而Java不支持按引用调用 。
缺点:
- 可能发生许多潜在的情况
- 程序有时很难理解
这些技术较旧 , 并已在Pascal , Algol和Fortran等较早的编程语言中使用 。 这些技术不适用于高级语言 。
- 按结果传递:此方法使用输出模式语义 。 就在将控制权传回给调用者之前 , 形式参数的值又传回了实际参数 。 有时 , 他的方法称为按结果调用 。 通常 , 按结果传递技术是通过复制实现的 。
- 按值传递结果:此方法使用输入/输出模式语义 。 它是“按值传递”和“按结果传递”的组合 。 就在将控制权转移回调用者之前 , 形式参数的值将被传输回实际参数 。 有时将此方法称为按值结果调用
- 按名称传递:这项技术用于Algol等编程语言中 。 在这种技术中 , 传递了变量的符号“ 名称 ” , 这使得变量可以被访问和更新 。
名称传递机制的含义:
每次传递形式参数时 , 都会重新评估参数表达式 。
该过程可以更改在参数表达式中使用的变量的值 , 从而更改表达式的值 。
【呼叫者|空投您需要的C / C ++中的参数传递技术】
推荐阅读
- 秸秆|平南的农友们请注意!秸秆禁烧,这些您需要知道!
- 坦克到底能不能进行空投,世界上还真有国家干过
- 央视新闻客户端|深夜“空投”餐盒砸坏他人车辆 北京一男子被刑拘
- 车闻社|多地惊现无人机空投盲盒,原来是长安UNI星球新玩法
- 俄罗斯划红线没用!土耳其已经空投雇佣兵,要把亚国逼入绝境
- 楼上要闻|喜马拉雅山传来巨响,神秘无人机凌空投下炸弹,印军抱怨从未见过
- 让你看见历史|美国空投原子弹时,日本为啥不派飞机拦截?美军轰炸机飞得太高了
- 越南空投大批特种兵:模仿邻国填海造岛,没想到把挖泥船填海里了
- 印度陆军紧急采购可空投的轻型坦克,俄罗斯军工企业稳操胜券
- 【健康促进】我国高血压患者超3亿,您需要知晓这个“无声杀手”
