精华内容
下载资源
问答
  • 值调用和引用调用

    2011-12-05 21:52:35
    昨天软考,考到了值调用和引用调用,,受不鸟啊,,又错了。。 int a=5;//a是全局变量 int f(int &r){  a = r +1;  r=r*2;  return r; } void t(){  int x=f(a);  cout } 通过引用调用时应该...

    昨天软考,考到了值调用和引用调用,,受不鸟啊,,又错了。。

    int a=5;//a是全局变量
    int f(int &r){
        a = r +1;
        r=r*2;
        return r;
    }

    void t(){
        int x=f(a);
        cout<<a+x;
    }


    通过引用调用时应该输出24,因为此时传进去的r就是a!所以a在经过f()函数的调用之后变成了12!

    值调用时输出16,这个很简单





    展开全文
  • 值调用和引用调用 Java中只有按值调用,没有引用调用 示例: class Operation { int data = 50; void change(int data) { data = data + 100; } public static void main(String args[]) { Operation op =...

    按值调用和引用调用


    Java中只有按值调用,没有引用调用
    示例:

    class Operation {
        int data = 50;
    
        void change(int data) {
            data = data + 100;
        }
    
        public static void main(String args[]) {
            Operation op = new Operation();
    
            System.out.println("before change " + op.data);
            op.change(500);
            System.out.println("after change " + op.data);
    
        }
    }
    

    示例结果

    before change 50
    after change 50
    

    另外一个比较容易混淆的示例

    class Operation2 {
        int data = 50;
    
        void change(Operation2 op) {
            op.data = op.data + 100;
        }
    
        public static void main(String args[]) {
            Operation2 op = new Operation2();
    
            System.out.println("before change " + op.data);
            op.change(op);
            System.out.println("after change " + op.data);
    
        }
    }
    

    数据结果

    before change 50
    after change 150
    

    貌似通过change是按照应用调用的;实际上依然是按值调用;
    第一个案例中的change()方法;

    void change(int data) {
        data = data + 100;         
    }
    

    //实际上 this.data = data,传进来的data已经不是原来的data了,所以这里data+100,只是This.data + 100,原来的值不变;

    而第二个示例

        void change(Operation2 op) {
            op.data = op.data + 100;
        }
    

    传入的是对象op,同样this.op = op;但是op中,data都是同一个;
    两个对象同时引用data
    两个对象同时引用data,所以当this.data 改变时,op的data也改变,虽然看着像引用调用,但是实际上还是按值调用。

    展开全文
  • 在java中只有通过值调用,而不是通过引用调用。 如果要调用一个传递值的方法,则称为按值调用。 在被调用方法中完成的更改,在调用方法的外部不受影响。 值调用示例: 在值调用的情况下,原始值不改变。 class ...

    在java中只有通过值调用,而不是通过引用调用。 如果要调用一个传递值的方法,则称为按值调用。 在被调用方法中完成的更改,在调用方法的外部不受影响。
    值调用示例:
    在值调用的情况下,原始值不改变。

    class Operation {
        int data = 50;
    
        void change(int data) {
            data = data + 100;// changes will be in the local variable only
        }
    
        public static void main(String args[]) {
            Operation op = new Operation();
    
            System.out.println("before change " + op.data);
            op.change(500);
            System.out.println("after change " + op.data);
    
        }
    }

    结果如下:

    before change 50
    after change 50

    在java中通过值调用的另一个示例
    在通过引用调用的情况下,如果在被调用的方法中做出的改变,则会改变原始值。 如果通过对象代替任何原始值,原始值将被改变。 在这个例子中,我们将对象作为值传递。 我们来看看下面的一个简单例子:

    class Operation2 {
        int data = 50;
    
        void change(Operation2 op) {
            op.data = op.data + 100;// changes will be in the instance variable
        }
    
        public static void main(String args[]) {
            Operation2 op = new Operation2();
    
            System.out.println("before change " + op.data);
            op.change(op);// passing object
            System.out.println("after change " + op.data);
    
        }
    }

    结果如下:

    before change 50
    after change 150

    总结:不想让变直接实例变量网上整,想让变就对象.实例变量。

    展开全文
  • 形参、实参   1。函数的形参列于函数声明中,在函数定义的函数体内使用。...值调用和引用调用的区别   传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用了实参的值

    形参、实参  

         1。函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。

      2。实参是用来填充形参的。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。

     

    值调用和引用调用的区别  

         传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用了实参的值。传值调用机制里 ,形参是一个局部变量,其初始值为相应实参的值。在引用调用机制里,以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上

    展开全文
  • 1.值调用的特点是调用时实参仅仅是将其值赋给了形参,因此在函数中对形参的任何修改都不会影响到实参的值。下面看下面代码以及输出结果: void swap(int x,int y) { int temp = x; x = y; y = temp; ...
  • 值调用和引用调用(7)

    2012-01-01 23:22:40
    注意: 声明一个引用时,必须同时进行初始化,使它只想一个已...//值调用 void Swap(int a,int b) {  int t;  t=a;  a=b;  b=t; } //引用调用:相当于实参的别名,就是C#中的对象调用一样 void SwapEx(in
  • 如果希望函数能够改变某变量的,那么相应的形参一定要是引用调用参数。因此必须在参数类型后面加上“&”符号。传值调用形参只是一个局部变量。当一组数据需要多个函数处理时候,也要用引用调用。 到目前为止...
  • 关于方法参数调用一般有两种:值调用(call by value)和引用调用(call by reference)。顾名思义,值调用表示方法接收的是调用者提供的值;引用调用表示方法接收的是调用者提供的变量的地址。 特别重要的是:在...
  • 1、抽象类和接口的区别 2、对象克隆 3、按值调用和引用调用 4、strictfp关键字
  • Hereyou will learn about difference between call by value ... 在这里,您将了解C中按值调用和引用调用之间的区别。 There are two different ways of passing values to functions: call by value and call ...
  • Java--按值调用和引用调用

    千次阅读 2018-07-16 20:10:45
     按引用调用:表示方法接收的时调用者提供的变量地址  在Java中总是采用按值调用,方法得到的参数值是一个拷贝。 二、实例演示  (1) 在 Java 中,八种基本数据类型String类型,在方法中不能直接对类中使用该...
  • 今天,我将向您介绍函数的第二个高级功能,即在C语言中按值调用和引用调用。迄今为止,我们在许多程序中都知道或不知道使用了按值调用功能。 因此,很容易理解其背后的逻辑。 另一方面,引用调用与指针一起使用。...
  • 值调用表示方法接收的是调用者提供的值 按引用调用表示方法接收的是调用者提供的变量地址。 一个方法可以修改传递引用所对应的变量值,但不能改变传递值调用所对应的变量值。
  • 方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) 。江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用。这其实很不...
  • 方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) 。江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用。这其实很不恰当,这种 ...
  • 函数调用的作用:  ·用实参数向形式参数传递数据;  ·为获得数据参数及在函数体中声明的变量分配存储空间;  ·中断现行(调用)函数,把流程向被...基本的参数传递机制有两种:传递和引用传递。   传递(pa
  • 程序设计语言中将参数传递给方法的几种方式: 按名调用(call by name) : Algol 语言采用此方式, 已成为历史; 按值调用(call by value) : 方法...C++ 支持 按值调用 引用调用 : 而 Java 只支持按值调用 , 也就
  • 函数的传址调用和引用调用

    千次阅读 2014-02-24 15:01:30
    传值调用比较简单,这种调用不能改变形参的,传址调用和引用调用中形参的改变可以改变实参的,下面分别予以介绍: (1)传址调用:形参是指针   //函数定义:   void swap(int *x,int *y)  {   int temp;...
  • 传值调用和引用调用

    2011-02-17 10:01:00
    值调用是指当发生函数调用时候,给形参分配内存空间,并用实参来初始化形参(直接将实参的值传递给形参).这一过程是参数值的单向传递过程,一旦形参获得了值,便于实参脱离了关系,此后无论形参发生了什么变化,都不影响...
  • 方法调用根据参数传递的情况又分为值调用(call by reference)和引用调用(call by value)。江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用。这其实很不恰当,这种这些...
  • 如果函数要使用参数,则必须声明接受参数的变量。这些变量称为函数的形式参数。 形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁。 当调用函数时,有三种向函数传递参数的方式: ...
  • 可能会有人认为是按引用调用,但是实际上,对象引用也是按传递的,由如下代码块执行结果可所示,如果对象参数是按照引用传递的话,那么e1e2交换之后,pe1pe2也会相应交换,但是实际上执行结果中,交换的仅仅是...
  • 方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) 。江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用。这其实很不恰当...
  • 传值调用和引用调用的理解

    千次阅读 2019-08-13 22:57:38
    引用调用 实参---->形参(实参传地址给形参,形参获得实参的地址),改变形参会反映在存储单元中,实参会被改变。 只有实参传值或者地址给形参! 没有形参穿或者地址给实参的说法! 形参没有确定的,只能是...
  • 方法调用根据参数传递的情况又分为值调用( call by reference ) 和引用调用( call by value ) 。江湖上有很多关于这两种调用的定义 ,最通常的说法是传递值的是值调用,传递地址的是引用调用。这其实很不恰当,这种 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,929
精华内容 2,771
关键字:

值调用和引用调用