精华内容
下载资源
问答
  • 函数参数两种传递方式

    千次阅读 2020-03-27 19:02:11
    当调用函数有两种向函数传递参数方式: 一、传值调用 该方法把参数的实际值复制给函数的形式参数这种情况下,修改函数内的形式参数不会影响实际参数。 默认情况下,C 语言使用传值调用方法来传递参数。...

    如果函数要使用参数,则必须声明接受参数值的变量。这些变量称为函数的形式参数。

    形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁。
    当调用函数时,有两种向函数传递参数的方式:

    一、传值调用

    该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
    默认情况下,C 语言使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数
    函数 swap() 定义如下:

    /* 函数定义 */
    void swap(int x, int y)
    {
       int temp;
    
       temp = x; /* 保存 x 的值 */
       x = y;    /* 把 y 赋值给 x */
       y = temp; /* 把 temp 赋值给 y */
      
       return;
    }
    

    现在,让我们通过传递实际参数来调用函数 swap():

    #include <stdio.h>
     
    /* 函数声明 */
    void swap(int x, int y);
     
    int main ()
    {
       /* 局部变量定义 */
       int a = 100;
       int b = 200;
     
       printf("交换前,a 的值: %d\n", a );
       printf("交换前,b 的值: %d\n", b );
     
       /* 调用函数来交换值 */
       swap(a, b);
     
       printf("交换后,a 的值: %d\n", a );
       printf("交换后,b 的值: %d\n", b );
     
       return 0;
    }
    

    当上面的代码被编译和执行时,它会产生下列结果:

    交换前,a 的值: 100
    交换前,b 的值: 200
    交换后,a 的值: 100
    交换后,b 的值: 200
    
    

    上面的实例表明了,虽然在函数内改变了 a 和 b 的值,但是实际上 a 和 b 的值没有发生变化。

    二、引用调用

    通过指针传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。
    传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。
    还是以上述代码为例:

    /* 函数定义 */
    void swap(int *x, int *y)
    {
       int temp;
       temp = *x;    /* 保存地址 x 的值 */
       *x = *y;      /* 把 y 赋值给 x */
       *y = temp;    /* 把 temp 赋值给 y */
      
       return;
    }
    

    现在,让我们通过引用传值来调用函数 swap():

    #include <stdio.h>
     
    /* 函数声明 */
    void swap(int *x, int *y);
     
    int main ()
    {
       /* 局部变量定义 */
       int a = 100;
       int b = 200;
     
       printf("交换前,a 的值: %d\n", a );
       printf("交换前,b 的值: %d\n", b );
     
       /* 调用函数来交换值
        * &a 表示指向 a 的指针,即变量 a 的地址
        * &b 表示指向 b 的指针,即变量 b 的地址
       */
       swap(&a, &b);
     
       printf("交换后,a 的值: %d\n", a );
       printf("交换后,b 的值: %d\n", b );
     
       return 0;
    }
    

    当上面的代码被编译和执行时,它会产生下列结果:

    交换前,a 的值: 100
    交换前,b 的值: 200
    交换后,a 的值: 200
    交换后,b 的值: 100
    

    上面的实例表明了,与传值调用不同,引用调用在函数内改变了 a 和 b 的值,实际上也改变了函数外 a 和 b 的值。

    展开全文
  • 函数的参数传递有两种方式:值传递和引用传递。 值传递,就是函数调用,给形参分配内存空间,利用实参对形参进行赋值。之后的执行过程中,形参和实参就脱离关系,互不影响。也就是说,用实参...

    形参是函数声明和定义的时候跟的参数,实参是调用函数时传进去的参数。形参只是对参数进行类型说明,函数没有被调用时,形参不占用内存;只有在调用时,才会为形参分配内存,将实参传递进去,即用实参对形参进行初始化。

    函数的参数传递有两种方式:值传递和引用传递。

    值传递,就是函数调用时,给形参分配内存空间,利用实参对形参进行赋值。之后的执行过程中,形参和实参就脱离关系,互不影响。也就是说,用实参初始化形参之后,形参在子函数内如何变化,与实参无关。子函数返回或结束后,调用函数中的实参的值,并未因为赋值给形参,形参在子函数中改变而改变。

    引用传递,就是利用引用类型的特点,来满足我们对于达到在被调函数中对形参的操作,等同于对实参的操作的效果的需要。引用是一种特殊类型的变量,实际上是另一个变量的别名,使用引用名和使用原来的变量名来访问变量是等效的。引用在做为形参时,不需要对其进行初始化,这是因为并不为形参分配内存。其他情况时,在声明引用变量时,要对其进行初始化,使它指向一个实际的对象。一旦引用被初始化之后,就不能指向其他对象。利用引用的特点,可以将形参设置为引用类型,这样函数调用时,实参对其进行初始化后,被调函数中任何对形参的操作,都相当于对调用函数中的实参的操作。

    值调用和参数调用的区别,只在于函数声明和定义时,形参的写法不同,主调函数调用被调函数时的调用语句是一样的。

    补充:读到拷贝构造函数一节时,对参数传递的两种方式有了新的理解:如果在子函数内部,形参的值不被修改,那么就可以采用值传递的方式;如果子函数内部,有对形参的修改操作,那么就必须采用引用传递方式来进行参数传递。

    转载于:https://www.cnblogs.com/miaomiaoormiaomiao/archive/2012/08/11/2634117.html

    展开全文
  • 2009年上半年软件设计师真题 函数调用基本的参数传递方式有传值与传地址两种。   传值方式讲解 1、传值方式下是将实参的值传递给形参 2、实参可以是表达式或常量,也可以是变量或...

    2009年上半年软件设计师真题 函数调用时基本的参数传递方式有传值与传地址两种。

     

    传值方式讲解

    1、在传值方式下是将实参的值传递给形参

    2、实参可以是表达式或常量,也可以是变量或数组元素

    3、这种信息传递是单方向的,形参不能再将值传回给实参

     

    传地址方式讲解

    1、需要将实参的地址传递给形参

    2、实参必须是变量数组名或数组元素,不能是表达式或常量

    3、被调用函数中对形式参数的修改实际上就是对实际参数的修改,可以实现数据的双向传递。

    展开全文
  • 在PHP中参数有两种传递方式,分别是值传递和引用传递。值传递是将要传递的值作为一个副本进行传递;而引用传递则是传递引用对象的内存地址。 下面则是对这两个的详解 1:值传递传递参数在调用函数前后...

    在PHP中参数有两种传递方式,分别是值传递和引用传递。值传递是将要传递的值作为一个副本进行传递;而引用传递则是传递引用对象的内存地址。


    下面则是对这两个的详解

           1:值传递

    值传递是参数在调用函数前后不发生改变,传递给函数的只是这个参数的值。也就是说在传递参数时函数范围内对这些值的任何改变都在函数外部被忽略掉。PHP中除了对象类型外,其他类型的参数传递都是值传递。

    2:引用传递

    如果我们希望在函数内部修改参数值,且函数的外部也能同时改变该参数值,可以用引用传递,引用传递参数的方式在参数前面添加 "&" 符号。

    在引用传递方式中,当参数传递给函数时,函数不在创建一个新变量,而是直接获得一个原有变量的引用。我们可以像使用其他变量一样使用该引用变量,其区别在于不是获得本身的值,而是指向原来的值。任何对该引用的修改都会影响到原始变量值。

    下面是一个例子:

    <?php
    function change($number){
    	$number = $number + 1;
    	echo $number."<br/>";
    }
    $number = 10;
    change(&$number);
    echo $number;
    ?>


    转载于:https://www.cnblogs.com/iplus/archive/2011/11/12/4490038.html

    展开全文
  • Tips:欢迎公众号设置为星标,VB技术干货文章可以第一时间看到。如您学习VB过程中独特的见解或者想法...函数和过程的参数传递方式在调用过程,过程中使用的是实际参数,它要与定义过程的形式参数一一对应,...
  • 传递参数主要有两种类型:params和query params的类型: 传一个值,用params 配置路由格式:/router/:id (与之前的动态路由相似) 传递方式path后面跟上对应的值 传递后形成的路径:/router/123,/router/...
  • Python中函数传递参数有四种形式四种中最常见是前两种,基本上一般点的教程都会涉及,后两种一般很少单独出现,常用混合模式中第一种 fun1(a,b,c)是直接将实参赋予行参,根据位置做匹配,即严格要求实参的数量与行...
  • 转自 ...函数参数的使用可以分为个方面,一是函数参数如何定义,二是函数调用参数如何解析的。而后者又是由前者决定的。函数参数的定义形式:1. F(arg1,arg2,...
  • 您的许多访问者都会通过点击链接访问您的...这是人访问您网站页面的最直接方式。如果您不熟悉该术语,则URL是以www或http开头的内容。创建网站的早期阶段,您需要坐下来为您的网站网址找出标准结构。(如果您的...
  • 浏览器提交form表单时有两种提交方式 一种是get方式,这也是默认的,到服务器端时就会调用处理get请求的doGet方法 而另一种是post方式,这需要form表单中指定,即 method="post",服务器端会自动调用doPost...
  • 使用hive开发数据分析代码,经常会遇到需要改变运行参数的情况,比如select语句中对日期字段值的设定,可能不同时间想要看不同日期的数据,这就需要能动态改变日期的值。如果开发量较大、参数多的话,使用变量来...
  • 调用函数,需要向函数传递参数,被传入函数的参数称为实参,而...【示例】下面定义一个简单的函数,函数有两参数函数中交换参数的值。 <?php function swap($a, $b){ echo '函数内,交换前 $a = '.$
  • 基本的参数传递机制有两种:值传递和引用传递。 值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即堆栈中开辟了内存空间来存放由主调函数放进来的实参的值,从而想成为了实...
  • 对于Java EE 7批处理工具,有两种将属性/参数传递给块和批处理的方法。 本快速指南向您展示了两种方式开发批处理Java EE 7方式可能会经常使用它们。 1.运行前预定义的属性/参数 预定义属性是您部署应用...
  • 用函数调用所给出的实参(实际...C++中调用函数时有种参数传递方式: (1)传值调用; (2)传址调用(传指针); (3)引用传递;总体上参数传递可分为类,由形参的类别决定:值调用(call by value)和引...
  • 他们的原理都差不多,都是点击支付,直接调用第三方支付接口,传入appid、appsecret、订单编号、订单金额、回调url,直接跳转到第三方支付页面,接下来的支付过程,我们都不需要管,支付成功以后,第三方支付...
  • js 参数传递方式:按值传递

    万次阅读 2017-12-21 10:29:29
    访问变量按值和按引用两种方式, 基础数据类型按值访问,引用数据类型按引用(即指针或地址)访问。 但参数只能按值传递参数传递基本类型的值,被传递的值会被复制给命名参数,引用类型传递的是它...
  • 把数组作为参数传递给函数传递(by value)和地址传递(by reference)两种方式传递方式中,声明和定义函数,要数组参数的尾部加上一对方括号([]),调用函数只需将数组的地址(即数组名)传递给...
  • mini-batch 谈到Java EE 7批处理功能,有两种方法可以将属性/参数传递给块和批处理。 本快速指南向您展示了两种方式开发批处理Java EE 7方式可能会经常使用这两种方式。 1.运行前的预定义属性/参数 预定义属性...
  • 谈到Java EE 7批处理功能,有两种方法可以将属性/参数传递给块和批处理。 本快速指南向您展示了两种方式开发批处理Java EE 7方式可能会经常使用它们。 1.运行前预定义的属性/参数 预定义属性是您部署应用...
  • python中,参数的传递方式有两种 引用传递 对于可变类型如列表,字典等,参数传递时按引用传递的。 eg: def fun(data): data[0]=2 print(data) #[2,2,3,4] print(id(data))data1=[1,2,3,4] fun(data1) #[2,...
  • 首先说说Python中参数传递的问题,Python中可变对象(比如列表List)和不可变对象(比如字符串),在参数传递时分为两种情况: 对于不可变对象作为函数参数,相当于C系语言的值传递; 对于可变对象作为函数参数...
  • C语言函数的参数传递方式

    万次阅读 2016-05-08 10:37:40
    1.形式参数和实际参数 1.1形式参数 形参出现被调函数当中,整个函数体内都可以使用。形参定义编译系统并不分配存储空间,只有调用该函数才分配内存单元。...传递方式有两种:值传递和地址传
  • 使用mybatis框架,大多...语句中接收参数方式有两种: 1、 #{}预编译 (可防止sql注入) 2、${}非预编译(直接的sql拼接,不能防止sql注入) 参数类型有三种: 1、 基本数据类型 2、 HashMap(使用方式...
  • ActionScript 3.0中参数的传递方式按值传递和按引用传递两种方式。在按值传递参数,把实参的数据复制一份给形参,在按引用传递参数,把实参引用地址传递给了形参。所以按值传递参数在函数计算工程中不会影响...
  • 参数传递

    2019-01-22 18:26:00
    C# 中,向方法传递参数方式方式描述 值参数 这种方式复制参数的实际值给函数的形式参数,实参和形参使用的是个不同内存中的值。这种情况下,当形参的值发生改变,不会影响实参的值,...
  • C++之参数传递方式

    2012-10-06 15:51:02
    众所周知,C++中调用函数时有种参数传递方式:  (1)传值调用;  (2)传址调用(传指针);  (3)引用传递;  实际上,还有一种参数传递方式,就是全局变量传递方式。这里的“全局”变量并不见得...
  • 基本的参数传递机制有两种:值传递和引用传递。  值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即堆栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 808
精华内容 323
关键字:

参数在传递时有两种方式