精华内容
下载资源
问答
  • 形参和实参

    2019-06-30 22:55:46
    方法传递中,形参和实参 String str ,str为形参,作为参数传递给方法,方法操作后,不影响str的值 Char[] ch,ch为实参,作为参数传递给方法,方法操作过程中指向的是同一个地址 所以方法操作后,会改变ch的值 ...

    方法传递中,形参和实参

    1. String str ,str为形参,作为参数传递给方法,方法操作后,不影响str的值
    2. Char[] ch,ch为实参,作为参数传递给方法,方法操作过程中指向的是同一个地址
      所以方法操作后,会改变ch的值 。

    3.形参只能用final字段修饰public void func(int final totalCount){}

    展开全文
  • 形参和实参的比较

    千次阅读 2018-08-25 13:41:26
    1、形参出现在函数定义中,在整个函数体内部都可以使用,离开该...3、如果在调用函数的过程中传给函数的不是实参的地址,在被调用函数运行时,形参和实参是不同的变量,它们在内存中位于不同的位置,形参将实参的...

    1、形参出现在函数定义中,在整个函数体内部都可以使用,离开该函数则不能使用。实参出现在主调函数中,主调函数中调用一个函数时,函数名后面括号中的参数称为实参。

    2、函数调用中发生的数据传送是单向的,只能把实参的值传送给形参,但改变形参的值并不可以改变实参的值

    3、如果在调用函数的过程中传给函数的不是指针,在被调用函数运行时,形参和实参是不同的变量,它们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变;如果在调用函数的过程中传给函数的是指针,调用后指针形参会改变实参的对象,但依然不会改变实参。
    以下提供代码供实验及思考:
    Test:
    再在用函数的过程中传给函数的不是指针

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void GetMemory(char *p){
        p = (char *)malloc(100*sizeof(char));
        if(p == NULL){
            printf("Failed to apply memory\n");
        }
    }
    
    int main(void){
        char *str = NULL;
    
        GetMemory(str);//再在用函数的过程中传给函数的不是指针
        strcpy(str,  "hello world");
    
        printf("%s\n", str);
    
        free(str);
        str = NULL;
    
        return 0;
    }

    Test1:
    在调用函数的过程中传给函数的是指针

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void GetMemory(char **p){
        *p = (char *)malloc(100*sizeof(char));
        if(*p == NULL){
            printf("Failed to apply memory\n");
        }
    }
    
    int main(void){
        char *str = NULL;
    
        GetMemory(&str);//在调用函数的过程中传给函数的是指针
        strcpy(str,  "hello world");
    
        printf("%s\n", str);
        free(str);
        str = NULL;
    
        return 0;
    }
    展开全文
  • Java方法的形参和实参

    2020-01-22 22:28:41
    Java方法的形参和实参形参实参传值调用传引用调用总结 形参与实参对应两种类型:值类型与引用类型 值类型:包括8种基本类型(byte、short、int、long、double、float、char、boolean)+ String 引用类型:数组、类...

    形参与实参对应两种类型:值类型与引用类型

    • 值类型:包括8种基本类型(byte、short、int、long、double、float、char、boolean)+ String
    • 引用类型:数组、类、接口等类型。

    注意String类型,这个比较特殊,它是存储在常量池中的,你可以把它近似看成值类型的。因为它的值一旦确定,就无法改变。

    • 为值类型时,形参方法内的参数值改变,并不会影响到实参的值。
    • 为引用类型时,形参方法内的参数值改变时,会影响到实参的值。注意是地址所指向的堆中的值,如果形参的地址改变了,那么这个改变不会影响到实参。

    形参

    用来接收调用方法时传递的参数。只有在被调用的时候才分配内存空间,一旦调用结束,就释放内存空间。因此仅仅在方法内有效。

    public void swap(int a, int b) {
            int temp = a;
            a = b;
            b = temp;
            System.out.println("a:" + a + " b:" + b);
    }
    

    这里边的a,b就是形参,temp是一个局部变量,方法结束,在栈空间中就会被销毁

    实参

    传递给被调用方法的值,预先创建并赋予确定值。

    1. 调用上面的
    2. swap(1,2);
    3. 其中1和2就是实际的参数值,就叫实参

    传值调用

    传值调用中传递的参数为基本数据类型,参数视为形参。

    public class Transform {
    
      public static void main(String[] args) {
        int i = 10;
        int j = 5;
        System.out.println("i: " + i + ", j: " + j);
        Transform.swap(i, j);
        System.out.println("i: " + i + ", j: " + j);
      }
    
      private static void swap(int a, int b) {
        int temp = a;
        a = b;
        b = temp;
        System.out.println("a: " + a + ", b: " + b);
      }
      
    }
    

    这里我们写了一个实现两个 int 型数据交换的方法,并且在 main() 方法中调用,然而结果却并不是我们想要的。
    运行结果如下图所示:
    传值调用测试运行结果
    就是因为基本数据类型是属于传值调用,当我们要实现交换时,方法内可以完成交换,只是形参进行了交换,方法结束,栈空间中就会销毁 swap() 方法内的局部变量,所以当调用 swap() 时,最终值还是实参的初始化值,并没有被修改。值改变作用到了形参,而不会作用到实参。

    传引用调用

    传引用调用中,如果传递的参数是引用数据类型,参数视为实参。在调用的过程中,将实参的地址传递给了形参,形参上的改变会影响到实参。

    /*
    	参数传递:
    	形参:方法声明时,方法小括号内的参数
    	实参:调用方法时,实际传入的参数值
    	java中传递值得机制:
    	形参是基本数据类型的: 将实参的值传递给实参的基本数据类型的变量
    	形参是引用数据类型的: 将实参的引用类型的值(即在堆空间中生成的首地址的值)传递给形参的引用类型的变量
    */
    public class Test {
    
      public static void main(String[] args) {
        Test t = new Test();
        Data data = new Data();
        System.out.println("data.i: " + data.i + ", data.j:" + data.j);
        // 调用
        Test.swap(data);
        System.out.println("data.i: " + data.i + ", data.j:" + data.j);
      }
    
      private static void swap(Data data) {
        int temp = data.i;
        data.i = data.j;
        data.j = temp;
      }
    }
    
    class Data {
      int i = 10;
      int j = 5;
    }
    

    形参部分直接传进去了一个对象,相当于堆空间的首地址值得引用
    运行结果:
    传引用调用测试运行结果

    总结

    1. java的基本数据类型是传值调用,引用类型是传引用调用;
    2. 当传值调用时,改变的是形参的值,并没有改变实参的值,实参的值可以传递给形参,但是,这个传递是单向的,形参不能传递回实参;
    3. 当传引用调用时,如果参数是对象,无论对对象做了何种操作,都不会改变实参对象的引用,但是如果改变了对象的内容,就会对应改变实参对象的内容。
    展开全文
  • C语言--形参和实参

    2021-01-10 21:14:09
    在被调函数中,若只是改变形参的值,函数调用完成后形参被释放,这时不会改变实参的值。 在被调函数中,若通过形参指针改变指针指向地址的值时,实参的值会被修改。 #include <stdio.h> int

    形参、实参

    C语言参数出现在两个地方–函数定义处、函数调用处。

    函数定义处的参数是形式参数,只用在函数调用时才分配内存,函数调用完成后释放内存,简称形参。

    函数调用处的参数是实际参数,可以是常量、变量、地址(指针、数组)等。在函数调用时实参把值单向传递给形参,形参参与运算,实参本身不参与运算。

    在被调函数中,若只是改变形参的值,函数调用完成后形参被释放,这时不会改变实参的值。
    在被调函数中,若通过形参指针改变指针指向变量的值时,实参的值会被修改。

    #include <stdio.h>
    
    int fun(int a, int *b) {
    	a++;
    	(*b) = (*b) + 1;
    	return a;
    }
    
    int main(void) {
    	
    	int a = 0, b = 0;
    	printf("a=%d b=%d\n", a, b);
    	printf("fun_a=%d b=%d\n", fun(a,&b), b);
    	printf("a=%d b=%d\n", a, b);
    	system("pause");
    
    	return 0;
    }
    

    输出结果
    实参a的值在函数调用前后并未改变,在函数调用过程中改变了。
    实参b的值在函数调用过程中改变了指针指向变量的值,实参b的值确实被改变了。
    所以,在函数调用过程中,使用指针可以改变实参。

    至于为什么第二个printf时b的值为0,我猜测是预读? 有大佬知道请不吝赐教。

    展开全文
  • 对于函数形参和实参,我其实也不能说太明白,这里只是我作为一个初学者的一些自我理解,如果有错误,希望大家指出。 在这里我就不去细说形参和实参的概念了,这里的a,b就是实参,而x,y就是形参。 在用整形,浮点型...
  • 形参和实参的思考

    2020-05-08 22:24:34
    形参和实参的思考 形参是方法的参数,用来接收实际参数。在方法被调用时,虚拟机会分配内存单元,方法结束时,会释放所分配的内存单元。 引来的问题:方法内的对象经过方法初始化并没有初始化,但是实体对象的属性又...
  • 形参和实参的区别

    2020-12-20 14:00:03
    2)在方法调用的时候,只能把实参的值传送给形参而不能把形参的值反向的传递给实参,因此,在方法调用过程中,对形参值的改变不会影响实参的值 如下例所示: public class Test { public static void f(int n) { n++; ...
  • 1.我将实参传递给形参,实参会随着形参改变而改变吗?...这样我若实参改变,线程里的形参变吗? 3.以上的问题,基于基本类型非基本类型都一样吗?? 记得基本类型不是值传递,实体类是引用传递。。。 糊涂了。求助
  • 在具体理解形参和实参的区别前,我们需要明白几个基本概念: 形参:形式参数,方法声明时的参数,它用来接收调用者传递来的实参;它只有在被调用时JVM才会为其分配内存单元,调用结束后回收内存单元,因此它的作用...
  • 引用类型:设计栈内存堆内存,形参改变之后会改变堆内存的值,方法使用后从栈内存消失,此时实参也需要调用堆内存中的值,所以形参改变会影响实参的值。 一个就是两个互不关联,另一个是2个方法都调用一个地方的值...
  • 输出结果是: 所以形参的改变不会影响实参的任何改变 形参和实参 形参(形式参数) 在函数定义中出现的参数可以看做是一个占位符,它没有数据,...形参和实参的功能是传递数据,发生函数调用时,实参的值会传...
  • 形参和实参在函数中

    2021-01-08 20:14:36
    List item #include <stdio.h> void f (int a,int b,int c) { a=a+1,b=b+2,c=c+3; } int main ...因为形参无法改变实参的值,所以,a,b,c的值不变。 #include <stdio.h> void f () { i.
  • 2-3形参和实参

    2019-07-31 09:54:00
    形参:出现在函数定义中,他们以假名字来表示函数调用时...在函数执行的过程中,对形参改变并不会影响实参的值,这是因为形参中包含的是实参数值的副本。 转载于:https://www.cnblogs.com/muzihuan/p/11274327.h...
  • 当函数需要用形参改变实参时,简单的传值不能解觉问题。这时就需要使用指针解决问题。 例:int a=10;b=20;要求写一个函数将a,b的值互换。 错误代码: 1. //交换失败,原因a,b仅仅只是赋值,main中的aSwap中的a不是...
  • 参数:形参和实参 1.形参:用来接收调用该方法时传递的参数。只有在被调用的时候才分配内存空间,一旦调用结束,就释放内存空间。因此仅仅在方法内有效。 2.实参:传递给被调用方法的值,预先创建并赋予确定值。 ...
  • 形参影响实参

    千次阅读 2018-04-24 22:53:00
    b当参数类型是引用数据类型时,若修改形参指向的内容会影响到实参,因为形参和实参指向的是同一块区域c当参数类型时引用数据类型时,若先修改形参的指向后再修改形参指向的内容则不会影响到实参的数值,因为此时二者指向...
  • 在学习Python 中的排序中...原因为形参和实参这两个标签指向的都是同样的一块列表。改变其中一个另一个也就跟着改变了。 解决方法如下可在参数中加: 在函数中复制一个List,在新的List中进行排序。 def selectionS...
  • 形参和实参的区别 形参 就是形式参数,用于定义方法的时候使用的参数,用来接收调用者传递的参数。形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用结束之后便会释放所分配的内存单元。 因此,形参只...
  • C的形参和实参的关系

    千次阅读 2015-12-03 17:49:38
    形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。...而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。
  • 昨天在Python学习群里有位路人甲问了个Python函数中关于形参和实参一个很基础的问题,虽然很基础,但是对于很多小白来说不一定简单,反而会被搞得稀里糊涂。人生苦短,我用Python。 为了解答大家的这个疑惑,小编在...
  • const形参和实参

    2014-08-05 21:53:00
    形参是const时,必须要注意关于顶层const的讨论。如前所述,顶层const的作用于对象本身: const int ci=42; //不能改变ci,const是顶层的 int i=ci; //正确:当拷贝ci时,忽略了它的顶层const int *const p=&...
  • 1.方法的形参中,java的基本数据类型是传值调用,对象引用...2.当传值调用时,改变的是形参的值,并没有改变实参的值,实参的值可以传递给形参,但是,这个传递是单向的,形参不能传递回实参。 3.当...
  • 实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把.../*** 注意:* 传递参数:形参(方法中)的改变有没有影响实参(main函数中)* 1.基本数据类型...
  • 方法参数传递 基本数据类型 对于基本数据类型的参数,形式参数的改变,不影响实际参数的值。这里可以想象内存分配问题,栈内存堆内存。...对于基本数据的参数,形参参数的改变,影响实际参数...
  • Javascript的形参和实参

    2012-12-26 11:11:06
    形参----------定义函数名函数体的时候,该方法携带的参数,目的是用来接收调用该函数时传进的参数 实参----------调用方法的时候,给该方法传递的参数 在函数调用时: 形参----------将实参内容复制一份...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,060
精华内容 424
关键字:

形参和实参改变