传值、传地址、传名的区别

例题:

(1)引用调用(call-by-reference)
传入的是B[1]的地址,也就是说x的改变会影响B[1].

I=1;
x=x+2;//x为B[1],B[1]为3.
B[I]=10;//直接赋值B[1]为10
I=2;
x=x+2;//x为B[1],B[1]为12

执行完程序后B[1]为12,B[2]为2.
(2)传值调用(call-by-value)
传值是把实参的值赋值给形参,对形参的修改,不会影响实参的值。传入的仅为B[1]的值,x的变化不会对B[1]有影响。

I=1;
x=x+2;//B[1]无变化
B[I]=10;//直接赋值B[1]为10
I=2;
x=x+2;//B[1]无变化

执行完程序后B[1]为10,B[2]为2.
(3)传名调用(call-by-name)
传入的是“B[I]”这个名字,也就是说x的改变会影响B[I].

I=1;
x=x+2;//x为B[I],而I是1,所以B[1]变成了3
B[I]=10;//直接赋值B[1]为10
I=2;
x=x+2;///x为B[I],而I是2,所以B[2]变成了4

执行完程序后B[1]为10,B[2]为4.

传值、传地址、传名的区别相关推荐

  1. 简单区别形参与实参,传值与传地址

    简单区别形参与实参,传值.传地址与传引用 函数的参数分为两种,分别是实际参数(实参)和形式参数(形参) 实际参数: 真实传给函数的参数,叫实参.实参可以是:常量.变量.表达式.函数等.无论实参是何种类 ...

  2. 参数传递之传名,传地址,得结果,传值

    编译原理速成,参数传递之传名,传地址,得结果,传值(四)_哔哩哔哩_bilibili 学习自上面的文章. 题目1: (1)传名. (2)传地址.(注意观察,A+B变成了临时变量T1,而在传名过程中,A ...

  3. 编译原理——参数传递—传名、传地址、得结果、传值

    1.传名(替换操作) 把这种方式理解为替换操作,把P函数参数X.Y.Z和P函数内部的Y.Z替换为A.B,然后P函数对Y.Z的操作,其实就是对A.B的操作: 需要注意这和传地址一样,上面对A造成的变化, ...

  4. C++中的参数传递方式:传值、传地址、传引用总结

    指针:指针是一个变量,只不过这个变量中存储的是一个地址,指向内存中的一个单元. 引用:引用和原变量是同一个东西,只不过是原变量的一个别名. int a = 10; 定义一个整型变量aint *p = ...

  5. C/C++中传值和传地址(引用)

    C/C++中参数传递有两种方式,传值或传地址(传引用),通常我们要在被调用函数中改变一个变量的值就需要传地址调用方式,例如: void swap_by_value(int a, int b) {int ...

  6. 传值调用 与传地址调用(传引用)

    转自:http://myturn.blog.hexun.com/15584978_d.html #include <iostream> using namespace std ; void ...

  7. C语言交换函数:传值函数与传址函数的区别

    1.传址函数典例 想必初识C语言函数的同学会遇到这样的问题: 当你想要写一个交换函数:交换输入的两个数字的值.明明将要传的两个数字传上去了,函数里的交换写法也没有问题,可为什么运行时会错呢?这就牵扯到 ...

  8. 值传递 引用传递(传地址,传引用)的区别

    传值      是把实参的值赋值给行参      那么对行参的修改,不会影响实参的值           传地址      是传值的一种特殊方式,只是他传递的是地址,不是普通的如int      那么 ...

  9. Java中的形参和实参的区别以及传值调用和传引用调用

    名词解析: 1.形参:用来接收调用该方法时传递的参数.只有在被调用的时候才分配内存空间,一旦调用结束,就释放内存空间.因此仅仅在方法内有效. 2.实参:传递给被调用方法的值,预先创建并赋予确定值. 3 ...

最新文章

  1. php 启动服务器监听
  2. 浅谈C++类(7)--析构函数
  3. Leetcode--190. 颠倒二进制位
  4. 基于JavaSpringMVC+Mybatis+Jquery高校毕业设计管理系统设计和实现
  5. UpdatePanel 学习之 ChildrenAsTriggers
  6. 具备这些特征,轻松进入互联网大厂成为web前端工程师
  7. 固定频率调用接口方案
  8. Python项目开发公用方法--excel生成方法
  9. 怎样用python自动生成python代码_(Python)自动生成代码(方法一)
  10. [ASP.NET AJAX]Function对象及Type类的方法介绍
  11. 比特币原理——交易与UTXO
  12. 谷歌眼镜原理揭秘 (二) ----- 简述谷歌眼镜成像原理
  13. mysql minus 语句用法,mysql如何用minus运算符?
  14. 详解BindingResult
  15. 华为 服务器 驱动 linux,华为服务器SAS控制器驱动问题
  16. 2022年流动式起重机司机考试题库模拟考试平台操作
  17. Qt编写可视化大屏电子看板系统10-改造QCustomPlot
  18. 设计计算机程序时 要考虑计算的过程,算法和程序设计练习题
  19. TensorFlow入门教程(1)安装、基础、Tensorboard
  20. 在一个有序数组里找到一个数字K【二分查找法】

热门文章

  1. 《从Lucene到Elasticsearch:全文检索实战》已出版!
  2. nano使用技巧大全
  3. DOM对象,节点,获取元素的非行间样式,元素的偏移量等属性词
  4. Honey and Clover - 蜂蜜与四叶草 - 心情
  5. Unity3D之实现火炬之光遮挡效果
  6. Android Handler中的handleMessage方法和post方法之源码剖析
  7. crontab的定时操作
  8. html 进网页就弹出图片,利用HTML、CSS实现的图片预览弹出层的教程
  9. CSS动画效果-用于背景(旋转等)
  10. 升级每天正常更新欢迎_我功夫特牛:0.1.20版本正式更新,金币能买传说装备,回刷大优化...