精华内容
下载资源
问答
  • 函数的参数传递形式: 1、 将变量名作为实参 说明:此时传递给形参的是变量的值,单向传递(执行期间,形参值的变化不传回给实参);原因:在调用函数时候,形参和实参不是同一个存储单元。 大家都熟悉的简单的...
     

    函数的参数传递形式:

    1、  将变量名作为实参

    说明:此时传递给形参的是变量的值,单向传递(执行期间,形参值的变化不传回给实参);原因:在调用函数时候,形参和实参不是同一个存储单元。

     

    大家都熟悉的简单的例子:

     

    Void swapint a, int b

    {

       int temp;

       temp =a;

    b=a;

    temp= b;///在这里可以实现 a b 的互换

     

    }

     

    int main()

    {

    int I =3, j =5;

    swap(I ,i);

    count <<I << “,”<<j;///这里只将I j 的值传递上去

     

    }

    2、参数变量的指针传递形式:

     

    Void swapint *a, int *b

    {

       int temp;

       temp =*a;

    *b=*a;

    temp= *b;///在这里可以实现 a b 的互换

     

    }

     

    int main()

    {

    int I =3, j =5;

    swap(&I ,&i);

    count <<I << “,”<<j;///这里只将I j 的互换

     

     

     

     

    2、  传递变量的别名:

       Void swapint &a, int &b//在函数体位申明了即将调用变量的引用。

    {

       int temp;

       temp =a;

    b=a;

    temp= b;///在这里可以实现 a b 的互换

     

    }

     

    int main()

    {

    int I =3, j =5;

    swap(&I ,&i);

    count <<I << “,”<<j;///这里也实现了I j 值的互换。

    转载于:https://www.cnblogs.com/zhchongyao/archive/2009/11/30/1613929.html

    展开全文
  • C语言中函数传递的三种传递形式:值传递,地址传递,引用传递。引用传递在C++的学习会有体会。 函数参数传递方式之一:值传递  1. 值传递的一个错误认识 voidExchg1(int x, int y) //定义中的x,y变量被称为...

    C语言中函数传递的三种传递形式:值传递,地址传递,引用传递。引用传递在C++的学习会有体会。

    函数参数传递方式之一:值传递 

    1. 值传递的一个错误认识

    voidExchg1(int x, int y)   //定义中的x,y变量被称为Exchg1函数的形式参数

    {

     int tmp;

     tmp=x;

     x=y;

     y=tmp;

     printf(“x=%d,y=%d/n”,x,y)

    }

    问:你认为这个函数是在做什么呀?

    答:好像是对参数x,y的值对调吧?

       请往下看,我想利用这个函数来完成对a,b两个变量值的对调,程序如下:

    voidmain()

    {

     int a=4,b=6;

     Exchg1 (a,b)     //a,b变量为Exchg1函数的实际参数。

    / printf(“a=%d,b=%d/n”,a,b)

    }

        Exchg1()里头的  printf(“x=%d,y=%d/n”,x,y)语句会输出什么啊?

       Exchg1()后的  printf(“a=%d,b=%d/n”,a,b)语句输出的是什么?

       程序输出的结果是:

    x=6, y=4 

    a=4, b=6  //为什么不是a=6,b=4呢?

     

     明明 把a,b分别代入了x,y中,并在函数里完成了两个变量值的交换,为什么a,b变量值还是没有交换(仍然是a==4,b==6,而不是a==6,b==4)?如果你也会有这个疑问,那是因为你跟本就不知实参a,b与形参x,y的关系了。

     

    2. 一个预备的常识

    为了说明这个问题,我先给出一个代码:

    inta=4;

    intx;

    x=a;

    x=x+3;

       看好了没,现在我问你:最终a值是多少,x值是多少?

       (怎么搞的,给我这个小儿科的问题。还不简单,不就是a==4  x==7嘛!)

       在这个代码中,你要明白一个东西:虽然a值赋给了x,但是a变量并不是x变量哦。我们对x任何的修改,都不会改变a变量。呵呵!虽然简单,并且一看就理所当然,不过可是一个很重要的认识喔。

     

    3. 理解值传递的形式

    看调用Exch1函数的代码:

     

    main()

    {

     int a=4,b=6;

     Exchg1(a,b) //这里调用了Exchg1函数       

     printf(“a=%d,b=%d”,a,b)

    Exchg1(a,b)时所完成的操作代码如下所示。

    intx=a;//←

    inty=b;//←注意这里,头两行是调用函数时的隐含操作

    inttmp;

    tmp=x;

    x=y;

    y=tmp;

       请注意在调用执行Exchg1函数的操作中我人为地加上了头两句:

    intx=a;

    inty=b;

       这是调用函数时的两个隐含动作。它确实存在,现在我只不过把它显式地写了出来而已。问题一下就清晰起来啦。(看到这里,现在你认为函数里面交换操作的是a,b变量或者只是x,y变量呢?)

       原来 ,其实函数在调用时是隐含地把实参a,b 的值分别赋值给了x,y,之后在你写的Exchg1函数体内再也没有对a,b进行任何的操作了。交换的只是x,y变量。并不是a,b。当然a,b的值没有改变啦!函数只是把a,b的值通过赋值传递给了x,y,函数里头操作的只是x,y的值并不是a,b的值。这就是所谓的参数的值传递了。

       哈哈,终于明白了,正是因为它隐含了那两个的赋值操作,才让我们产生了前述的迷惑(以为a,b已经代替了x,y,对x,y的操作就是对a,b的操作了,这是一个错误的观点啊!)。

     

    三. 函数参数传递方式之二:地址传递

    继续——地址传递的问题!

    看题二的代码:

    Exchg2(int*px, int *py)

    {

     int tmp=*px;

     *px=*py;

     *py=tmp;

     print(“*px=%d,*py=%d/n”,*px,*py);

    }

    main()

    {

     int a=4;

     int b=6;

         Exchg2(&a,&b);

         Print(“a=%d,b=%d/n”, a, b);

    }

    它的输出结果是:

     *px=6,*py=4

     a=6,b=4

     

       看函数的接口部分:Exchg2(int*px,int *py),请注意:参数px,py都是指针。

       再看调用处:Exchg2(&a,&b);

       它将a的地址(&a)代入到px,b的地址(&b)代入到py。同上面的值传递一样,函数调用时作了两个隐含的操作:将&a,&b的值赋值给了px,py。

    px=&a;

    py=&b;

       呵呵!我们发现,其实它与值传递并没有什么不同,只不过这里是将a,b的地址值传递给了px,py,而不是传递的a,b的内容,而(请好好地在比较比较啦)

       整个Exchg2函数调用是如下执行的:

     px=&a;   //

     py=&b;   //请注意这两行,它是调用Exchg2的隐含动作。

     int tmp=*px;

     *px=*py;

     *py=tmp;

     print(“*px=%d,*py=%d/n”,*px,*py);

       这样,有了头两行的隐含赋值操作。我们现在已经可以看出,指针px,py的值已经分别是a,b变量的地址值了。接下来,对*px,*py的操作当然也就是对a,b变量本身的操作了。所以函数里头的交换就是对a,b值的交换了,这就是所谓的地址传递(传递a,b的地址给了px,py),你现在明白了吗?

     

    四. 函数参数传递方式之三:引用传递

       看题三的代码:

    Exchg3(int&x, int &y) //注意定义处的形式参数的格式与值传递不同

    {

      int tmp=x;

      x=y;

      y=tmp;

     print(“x=%d,y=%d/n”,x,y);

    }

    main()

    {

     int a=4;

     int b=6;

         Exchg3(a,b);  //注意:这里调用方式与值传递一样

         Print(“a=%d,b=%d/n”, a, b);

    }

    输出结果:

    x=6,y=4

    a=6,b=4   //这个输出结果与值传递不同。

       看到没有,与值传递相比,代码格式上只有一处是不同的,即在定义处:

    Exchg3(int&x, int &y)。

       但是我们发现a与b的值发生了对调。这说明了Exchg3(a,b)里头修改的是a,b变量,而不只是修改x,y了。

       我们先看Exchg3函数的定义处Exchg3(int &x,int &y)。参数x,y是int的变量,调用时我们可以像值传递(如: Exchg1(a,b); )一样调用函数(如: Exchg3(a,b); )。但是x,y前都有一个取地址符号&。有了这个,调用Exchg3时函数会将a,b 分别代替了x,y了,我们称x,y分别引用了a,b变量。这样函数里头操作的其实就是实参a,b本身了,也就是说函数里是可以直接修改到a,b的值了。

     

      最后对值传递与引用传递作一个比较: 

    1. 在函数定义格式上有不同:

    值传递在定义处是:Exchg1(int x, int y);

    引用传递在这义处是:Exchg1(int &x, int &y); 

    2. 调用时有相同的格式:

    值传递:Exchg1(a,b);

    引用传递:Exchg3(a,b); 

    3. 功能上是不同的:

    值传递的函数里操作的不是a,b变量本身,只是将a,b值赋给了x,y函数里操作的只是x,y变量而不是a,b,显示a,b的值不会被Exchg1函数所修改。

    引用传递Exchg3(a,b)函数里是用a,b分别代替了x,y。函数里操作的是a,b。

     

    转载出处: http://blog.csdn.net/the_fire/archive/2009/06/13/4267058.aspx

    展开全文
  • Python的参数传递形式

    2017-06-06 15:35:58
    参数传递形式: 位置参数:从左至右。 关键字参数:按照关键字名称匹配 混合上面两种方式时候:所有的位置参数,所有关键字参数 定义函数时候使用默认参数:有默认值参数 混用有默认值参数和无默认值...
    def foo1(arg1,arg2,key1=1,key2=2,*arg,**keywords):
        print "arg1 parameters is ",arg1
        print "arg2 parameters is ",arg2
        print "key1 parameter is ",key1
        print "key2 parameter is ",key2
        print "Arbitrary parameter is ", arg
        print "keywords parameter is ",keywords

    foo1(1,2,3,4,5,6,k1=1,k2=2,k3=3)

    输出:

    arg1 parameters is  1
    arg2 parameters is  2
    key1 parameter is  3
    key2 parameter is  4
    arg parameter is  (5, 6)

    keywords parameter is  {'k3': 3, 'k2': 2, 'k1': 1}

    作为一个Python初学者,一个Python菜鸟,我不知道大家是不是和我一样,学习很很费力。最开始的时候真的是很费力。上面的例子我一开始的时候,始终弄不明白*arg,**keywords是干啥的。起什么作用。那么现在我给大家解释一下。

    参数传递形式:

    位置参数:从左至右。

    关键字参数:按照关键字名称匹配

    混合上面两种方式时候:所有的位置参数,所有关键字参数

    定义函数时候使用默认参数:有默认值参数

    混用有默认值参数和无默认值参数时候,无默认值参数放在前面。

    调用函数时候使用可变参数需求:

    定义函数时候使用*:收集位置参数

    定义函数时候使用**:收集关键字参数


    展开全文
  • React组件参数传递形式和方式

    千次阅读 2019-06-13 21:51:02
    1.父组件给子组件传参数 单个参数 使用props 写在子组件标签属性上即可 子组件得到的props props —> {name: “sss”, children: Array(6)} 集合 {arr} 写在插槽里面 插槽里的数据在props的children数组里面接收 ...

    1.父组件给子组件传参数

    单个参数 使用props 写在子组件标签属性上即可

    子组件得到的props
    props —> {name: “sss”, children: Array(6)}

    集合 {arr} 写在插槽里面 插槽里的数据在props的children数组里面接收

    {name: “sss”, children: Array(6)}

    2.父组件给子组件传DOM

    直接写在插槽里面,props.children接受

    let arr = [1,2,3]
    
    # 标题
    
    {arr}  ---->  {[1,2,3]}
    
    let list = [dom1,dom2,dom3] (一般是map的返回)
    {[
    dom1,
    dom2,
    dom3,
    ]} 
    --->   {list}
    

    父组件向子组件传参 标签属性 插槽

    标签属性是在props对象里面的单个属性

    插槽的数据全部存在children

    展开全文
  • 本文讲述了参数传递中引用形参和非引用形参的区别,并且对哪些情况使用使用什么样的参数传递给出了说明。并且讲述了关于指针函数的了解和使用方法。在文章中还讲述了关于C++中流对象的特点和操作,包括文件流,控制...
  • 参数传递

    2021-03-03 15:13:38
    参数传递: 在调用方法时,向方法内传入一些数据的动作,传入数据的动作就是参数传递 形式参数: 定义方法时写在小括号之内的东西 实际参数: 调用方法时,真正传入方法里的数据 1.对于基本数据类型(以及String)来...
  • 主要介绍了参数传递的四种形式(URL,超链接,js,form表单)有需要的朋友可以参考下
  • 四种参数传递形式

    2017-03-05 18:35:30
    四种参数传递形式
  • 形式参数传递的是具体类! 形式参数传递的是抽象类! 形式参数传递的是接口类!
  • 引言在解决这个问题之前,首先简单了解一下关于参数传递的相关概念:形式参数和实际参数值传递和引用传递1、形式参数形式参数是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。...
  • StringBuffer作为形式参数传递

    千次阅读 2016-02-29 11:40:02
    StringBuffer做形式参数
  • 了解函数传递参数 了解形式参数和实际参数 学习内容: 1、 给函数传递参数 2、 了解形式参数 3、 了解实际参数 4、 进一步掌握函数的调用 代码讲解: 前面我们学习了函数的定义和调用,但是没有细讲在函数传递的...
  • Text1:传值形式: 示例: c语言代码: #include<stdio.h> void swap1(int x, int y){ int m; m = x; x = y; y = m; printf("x=%d,y=%d\n", x, y); } int main(){ int a...
  • python中函数参数传递的几种方法2008-06-19 13:06:48Python中函数参数的传递是通过“赋值”来传递的。但这条规则只回答了函数参数传递的“战略问题”,并没有回答“战术问题”,也就说没有回答怎么赋值的问题。函数...
  • 本文介绍了四种参数传递形式,并给出了URL,超链接,js,form表单传参方式,需要的朋友可以参考下
  • 函数的参数传递有两种形式 第一种是值传递,经常见于int、str、float、bool型数据。指的是将实际参数的值复制给形式参数一份,由被调用函数使用参与被调函数的运算,在这个过程中,实际参数的数值不会发生变化,而...
  • Python函数参数传递的几种形式

    千次阅读 2019-10-14 23:13:34
    python函数参数传递的几种形式前言位置传参序列传参(单星号元组传参)关键字传参字典关键字传参(双星号字典传参)混合传参函数的缺省参数结束 前言 莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑...
  • 传递是将需要传递的值作为一个副本传递出去,例如: int i = 5; int j = i; 这里把i的值5拷贝了一份副本,作为j的值,结果是i = 5,j = 5.如果改变j的值,也就是拷贝出来的副本的值, 这个改变和原来的值毫无关系,...
  • 参数传递主要分为两种:一种是参数是基本类型,一种是参数为引用类型。 形式参数的问题: 基本类型:形式参数的改变不影响实际参数(int...) 引用类型:形式参数的改变直接影响实际参数 基本数据类型: 基本...
  • 类名作为形式参数 :其实这里需要的是该类对象 public class Test { public static void main(String[] args) { // 创建老师对象 Teacher t= new Teacher(); // 创建学生对象 Student s= new ...
  • url传递参数标准形式

    千次阅读 2016-05-03 13:17:05
    manage_messages_path GET /manage/messages(.:format) manage/messages#index ...#####通过manage_messages_path来传递guest_id和host_id, target实际是html的一个属性, target的参数用法如下:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,106
精华内容 4,442
关键字:

参数传递形式