精华内容
下载资源
问答
  • java中形参实参改变

    千次阅读 2015-08-06 11:34:16
    Java的形参实参改变   Java中形参如果为基本类型的话,传递的是值,所以不会改变的(因为在内存中它指向的数据的地址没改变,所以不会发生改变)改变的只是形参,实参不会改变   //基本类型     public...

    Java的形参,实参改变

     

    Java中形参如果为基本类型的话,传递的是值,所以不会改变的(因为在内存中它指向的数据的地址没改变,所以不会发生改变)改变的只是形参,实参不会改变

     

    //基本类型

     

     

    public classtest3 {

        publicstaticvoidmain(String [] args)

        {

         int a = 1;

         int b = 2;

         

         change(a,b);

         System.out.println("a "+a+" b "+b );

        }

       

        

        publicstaticvoidchange(inta ,int  b)

       {

          int temp = 0;

          temp = a;

          a = b;

          b = temp;

          

       }

    }

     

    而传递对象或者数组的时候传递的是引用,改变了内存的堆中的数据,所以形参会改变实参

    //对象传递

    public classtest3 {

        publicstaticvoidmain(String [] args)

        {

         c c = new c();

         d d = new d();

         

         change(c,d);

         System.out.println("c "+c.cc+" d "+d.dd );

        }

        

        publicstaticclassc {

          public intcc = 1;

       }

        

        publicstaticclassd {

          public intdd = 2;

       }

        

        publicstaticvoidchange(c c ,d d)

       {

          int temp = 0;

          temp = c.cc;

          c.cc = d.dd;

          d.dd = temp;

       }

    }

     

     

    //数组传递

     

    public classtest3 {

        publicstaticvoidmain(String [] args)

        {

         int [] a = newint[10];

         int [] b = newint[10];

         a[0] = 1;

         b[0] = 2;

         

         change(a,b);

         System.out.println("a "+a[0]+" b "+b[0] );

        }

       

        

        publicstaticvoidchange(int[] a ,int[] b)

       {

          int temp = 0;

          temp = a[0];

          a[0] = b[0];

          b[0] = temp;

          

       }

    }

     

    展开全文
  • 形参和实参

    2019-08-02 03:43:25
    形参和实参 形参和实参可以不一样,类型,数量都可以不一样 ,JS根本就不关心 形参和实参会绑定,动态关联 function foo(a,b,c){ //a,b,c 是形参 console.log(arguments); //arguments 是实参数组 argument[0] ...

    形参和实参

    • 形参和实参可以不一样,类型,数量都可以不一样 ,JS根本就不关心
    • 形参和实参会绑定,动态关联
    
    function foo(a,b,c){       //a,b,c 是形参
            console.log(arguments); //arguments 是实参数组
            argument[0] = -1;
            console.log(a); // a = -1 改变了
    
            argument[1] = 2;
            console.log(b);   //返回 undefined
        }
        
        foo(1);
    

    从上面代码中可以看出 a 改变了,而 b 没有改变,当我们给参数的时候 js 会自动绑定形参与实参即 a 和 1和 arguments[0] 自动绑定,已经绑定的参数可以进行修改,而没有绑定的想要添加时,就不能再次进行绑定了。

    形参写在括号里实现,实参通过 arguments 类数组实现。

    展开全文
  • C++ 形参和实参

    2018-12-17 21:34:04
    今天突然看到一道关于形参和实参的题,我居然不求甚解。藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师 T。T 我...

    今天突然看到一道关于形参和实参的题,我居然不求甚解。藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师 T。T

    我觉得只要明白了值传递和地址传递,就应该能明白形参和实参的具体工作细节了。

    1、值传递

    实参是变量,表达式等值。
    
    find(int x){}
    
    y= find(z);
    

    上面的例子中,z是实参,x是形参。x变z不变。

    在值传递过程中,实参和形参位于内存中两个不同地址中,实参先自己复制一次拷贝,再把拷贝复制给形参。所以,在值传递过程中,形参的变化不会对实参有任何的影响。

    2、地址传递(也称引用传递)

    实参是指针。

    在函数调用的时候,实参传递给你的是指针地址,地址一样也就意味着实参和形参是一样的,当你的形参发生改变时,实参也会发生改变。

    find(int  &x){}
    
    y= find(z);
    
    上面的例子中,z是实参,x是形参。z随x而改变。
    

    3、const引用传递

    find(const int  &x){}
    
    y= find(z);
    
    上面的例子中,z是实参,x是形参。z不随x而改变。
    
    有人就会问了,你这样做不是和值传递一样的么?NO!
    
    仔细观察就会发现,在值传递中要进行两次拷贝,浪费内存资源是相当可耻的,const的出现有效避免了这种情况的出现,只需拷贝一次就够了。
    

    转载来源:https://www.cnblogs.com/kane0526/p/3913284.html 的博客园

    展开全文
  • 形参和实参的区别

    万次阅读 多人点赞 2015-12-17 20:42:42
    形参和实参的区别
    实参(argument):
      全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。      

    形参(parameter):
    全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。

    形式参数:形参是函数被调用时用于接收实参值的变量。

    根据实际需要可有可无。没有形参时,圆括号也不可省;多个参数之间应用逗号分隔。参数包括参数名和参数类型。

    形参的类型说明可有如下两种格式:

      int max(int  a,int b)/*形参的类型在形参表中直接说明*/

        {  return (a>b?a:b);}     

     或

       int max(a,b)

       inta,b;         /*形参的类型在函数体前、函数名后说明*/

       { return(a>b?a:b); }

    前者为标准格式,后者为传统格式,通常用前者。


    形参和实参的区别

    形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。

    实参出现在主调函数中,进入被调函数后,实参变量也不能使用 

    形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送

    1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。 

    2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 

    3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生类型不匹配的错误。 

    4.函数调用中发生的数据传送是单向的 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

    5.当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变

    如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值。


    展开全文
  • 函数形参和实参

    2021-05-13 19:40:56
    C语言函数的参数会出现在两个地方,分别是函数定义处函数调用处,这两个地方的参数是有区别的。...形参和实参的区别联系形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量
  • C语言函数-形参和实参

    千次阅读 多人点赞 2019-04-29 09:34:34
    1.形参和实参的概念 形参(也叫形式参数) 在定义函数名函数体的时候使用的参数,他没有数据,可以看做一个占位符,只能等到函数被调用时接收传递进来的数据,所以称为形式参数; 实参(也叫实际参数) 在调用时传递给...
  • 函数的形参和实参

    2018-12-12 22:37:49
    函数的参数分为形参和实参两种。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用...
  • 自定义一个测试函数,通过对比形参和实参的ID来研究修改形参实参的影响。 def test(a) : print("a =",a,id(a)) c = 20 test(c) print("c =",c,id(c)) a = 20 140707504189792 c = 20 140707504189792 传参后a...
  • 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它...形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参形参和实参的区别联系 1 . 形参变量只有在函数被调用时才会分配内存...
  • 下面小编就为大家带来一篇c++指针使用形参改变实参的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 形参和实参的比较

    千次阅读 2018-08-25 13:41:26
    2、函数调用中发生的数据传送是单向的,只能把实参的值传送给形参,但改变形参的值并不可以改变实参的值。 3、如果在调用函数的过程中传给函数的不是实参的地址,在被调用函数运行时,形参和实参是不同的变量,它们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,659
精华内容 22,663
关键字:

形参和实参改变