精华内容
下载资源
问答
  • java中形参作用域: 1): (传引用),执行作用域在执行完method方法后,形参不是立即释放内容空间 (类似:全部变量) 1. method(Map,BigDecimal> sMap); 2. method(Object object);2): 基本类型,以及一些封装类...

    java中形参作用域:
    一、内存区域类型
    1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制;
    1. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(对象可能在常量池里)(字符串常量对象存放在常量池中。);
    2. 堆:存放所有new出来的对象;
    3. 静态域:存放静态成员(static定义的);
    4. 常量池:存放字符串常量和基本类型常量(public static final)。有时,在嵌入式系统中,常量本身会和其他部分分割离开(由于版权等其他原因),所以在这种情况下,可以选择将其放在ROM中 ;
    5. 非RAM存储:硬盘等永久存储空间

    1): (堆),执行作用域在执行完method方法后,形参不是立即释放内容空间 (类似:全部变量)

        1. method(Map<String,BigDecimal> sMap);
        2. method(Object object);

    2): (栈)基本类型,以及一些封装类(BigDecimal,Integer)或者String
    执行完method方法,形参即释放内存空间 (类似:局部变量)

        1. method(String str);
    展开全文
  • 函数形参作用域和传递方向

    千次阅读 2017-10-12 10:14:11
    #include using namespace std; int add(int a,int b) {int c=a+b; return c; } void main() ...在函数add中,已经定义了a和b的情况下,函数体中就可以直接使用;...说明,函数的形参作用域在函数体内;

    1)函数的形参

    #include <iostream>


    using namespace std;

    int add(int a,int b)
    {int c=a+b;
    return c;
    }


    void main()
    {int a =add(2,3);
    cout<<a<<endl;

    }


    输出的结果为5;

    在函数add中,已经定义了a和b的情况下,函数体中就可以直接使用

    说明,函数的形参的作用域在函数体内;


    另外一种多余的写法:

    int add(int a,int b)
    {int c=a;

    int d=b;

    int e=c+d;
    return e;
    }
    这种写法很鸡肋,有一种承接从形参传过来的数据的感觉;其实完全没有必要。


    2)形参的传递方向问题


    函数的形参(非指针)的传递方向是单向的,即只能从函数外往函数里传递。而不能通过形参从函数里往函数外传递。

    可以通过返回值的方式正确的从函数里往外传递: return





    如果想要实现从函数的形参往外传递数,则需使用指针:即,指针可以实现双向传递的功能。
    如果参数为指针类型,则在被调函数中可以修改地址中的值,也就形成了双向传递





    展开全文
  • 如果想要精通学习C语言是比较困难的,除了在平时需要多思考之外,还需要在平时做好日常总结,在学习C语言的时候,有两种不同的参数,一种是形参,一种是实参,二者的作用范围是不同的,形参和实参是有很大区别的,...

    现在很多大学将C语言作为必修课,如果想要精通学习C语言是比较困难的,除了在平时需要多思考之外,还需要在平时做好日常总结,在学习C语言的时候,有两种不同的参数,一种是形参,一种是实参,二者的作用范围是不同的,形参和实参是有很大区别的,不过很多人对于二者的区别不了解。

    54ebaab5ed9cd731889cd5a50cc7b22d.png

    形参和实参区别

    形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。

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

    aa024bb8d67a13e1fab461d27c261337.png

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

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

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

    f5dc8963170e6f50f85b6fac202ce63f.png

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

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

    展开全文
  • JS- 函数-形参实参-作用域 1 回顾 数组 1. 什么是数组 值的有序集合 数组中的每个成员称之为元素 元素具有位置,称之为索引 索引从 0 开始,必须是连续的 2. 声明数组三种方式 ① 数组直接量 [] ② Array() ...

    JS- 函数-形参实参-作用域

    1 回顾 数组

    1. 什么是数组
       值的有序集合
       数组中的每个成员称之为元素
       元素具有位置,称之为索引
       索引从 0 开始,必须是连续的
       
    2. 声明数组三种方式
       ① 数组直接量 []
       ② Array() 函数
       ③ Array() 构造函数
    
    3. 数组元素的读写
       [] 和 索引
       
    4. 稀疏数组
    5. 遍历数组
    6. 数组元素的添加和删除
       6.1 添加数组元素
       	① 指定下一个索引,利用 length
       	② push()
       	③ unshift()
       	④ splice()
       6.2 删除数组的元素
        ① 修改 length
        ② pop()
        ③ shift()
        ④ splice()
     
     7. 多维数组
     8. 字符串的数组特性
    
    

    2 函数

    2.1 函数概述

    ① 什么是函数

    • 函数是具有特定功能的代码块。
    • 在 JavaScript,函数也是一种数据类型,属于对象类型,使用 typeof 判断函数返回 function。

    ② 函数的作用

    • 函数可以被调用多次,提高代码的重用性。
    • 可以把整个代码项目,通过函数模块化。
    • 封装代码,让函数内部的代码对外部不可见。

    ③ 函数的组成

    • 函数名
    • 参数
    • 函数体
    • 返回值

    2.2 声明函数的三种方式

    ① function 关键字方式

    function 函数名([参数列表...]) {
     	函数体语句...;   
    }
    
     var fn03 = function() {
                console.log('天气晴朗');
            }
     fn03();
    

    ② 表达式方式

    var 函数名 = function([参数列表...]) {
        函数体语句...;
    }
    
     // 表达式方式 定义带参数的函数
            var fn04 = function(name,age) {
                console.log('我叫' + name +',年纪 '+ age+'')
            }
            fn04('王',25);
    

    ③ Function 构造函数方式(了解)

    var 函数名 = new Function('函数体语句...');
    var 函数名 = new Function('参数1', '参数2', '参数3', '函数体语句...');
    var 函数名 = Function('函数体语句...');
    var 函数名 = Function('参数1', '参数2', '参数3', '函数体语句...');
    
    // Function 构造函数方式
            var fn05 = new Function('console.log("我是fn05")');
            var fn06 = Function('name', 'age', 'console.log(name, age)');
            fn05();
            fn06('王', '25');
           
    

    2.3 函数的调用和返回值

    ① 函数调用

    • 函数名的后面加括号,才是函数的调用,函数中的语句才可以执行。
    • 函数名后面没有括号,函数不会被调用,函数中的语句也不会执行。

    ② 返回值

    • 函数调用表达式(函数名+括号)的值是函数的返回值。

    • 在函数体内部,使用 return 关键字可以设置返回值,需要在 return 的右边写个表达式(表达式的值就是函数返回值)。

    • 如果函数中没有 return 或者 return 的右边没有表达式,函数默认返回 undefined。

    • return 关键字除了可以设置函数的返回值,还可以结束函数的执行,执行了 return 之后,函数体内 return 后面的代码就不会执行。

      		// 函数的返回值
              function demo () {
                  console.log(100);
                  //return 100*7;
              }
              var v3 = demo();  j
              console.log(v3);  //undefined,有return 7000
              demo ();          //100
      
      // 定义函数
              function fun() {
                  console.log('天气晴朗');
                  return;
                  console.log('万里无云');
              }
              fun();   //天气晴朗
      
      // return和输出的区别
              function fu (n1,n2) {
                  return n1 + n2;
              }
              console.log(fu(100,200));   //300
      
      素数判断
      function isPrime(num) {
              // 从2开始到num-1,一次去整除num
              for (var i = 2;i < num-1; i ++) {
                  // 如果有一个能被整除,不是素数了
                  if (num % i === 0) {
                      return false
                  }
              }
              // 如果能够执行到这里
              return true;  
             }
             console.log(isPrime(197));  //ture
             console.log(isPrime(100));  //false
      
      
              // 输出100-200之间的素数
             for (var i = 100;i <= 200; i ++) {
                 if(isPrime(i)) {
                     console.log(i);
                 }
             }
      

    2.4 函数的参数

    ① 形参和实参

    形参: 定义函数的时候所设置的参数,形参就像没有赋值的变量, 形参的形式必须以变量名形式给出。

    实参: 调用函数给的参数,用于给实参赋值,实参的形式可以是变量、直接量、表达式。

    ② 形参和实参的数量问题

    1. 设置了多个形参,调用函数的时候就给多少个实参。

    2. 如果实参的个数比形参多,实参按照顺序依次给形参赋值,多余的实参就没有用了。

    3. 如果实参的个数比形参少,实参按照顺序依次给形参赋值,后面的形参没有对应的实参,默认赋值为 undefined。

      		// 调用函数,实参的数量<形参
              fn('王');    //我叫王,undefined
      

    ③ 形参的默认值(可选参数)

    ES5 中给形参设置默认值的方式:

    function 函数名(参数1,参数2) {
        if (参数2 === undefined) {
            参数2 = 默认值;
        }
    }
    

    ES6 中给形参设置默认值的方式:

    function 函数名(参数1,参数2=默认值) {
        
    }
    

    注意: 有默认值的形参一定要放在后面。

    ④ arguments

    1. arguments 只能在函数内使用,arguements 是系统定义好的变量。
    2. arguments 可以得到调用函数时给的所有的实参。
    3. arguments 是一个类数组(不是真正的的数组),可以通过索引读取其中的成员,具有 length 属性得到长度,可以使用 for 循环遍历里面的成员。
    4. JavaScript 函数中获取实参,可以通过设置形参,也可以通过 arguments。
    // 定义函数,计算所有参数的和
            function sum()  {
                var res = 0;
              
                for (var i = 0;i < arguments.length; i ++) {
                    res += arguments[i]
                }
                return res
            }
            console.log(sum(1,2,3))
    

    2.5 作用域

    ① 变量的作用域

    变量的作用域: 变量的可作用范围。根据变量的作用域,可以把变量分为全局变量局部变量

    全局变量: 在函数外边定义的变量就是全局变量,全局变量的作用域是全局。

    局部变量: 在函数内定义的变量就是局部变量,局部变量的作用域是所在的函数。

    注意实现:

    1. 形参是局部变量,作用域是所在的函数。
    2. 函数名本质上是变量名,所以说函数本身也具有作用域。

    ② 作用域链

    1. **什么是作用域链:**函数的嵌套可以形成作用域链。
    2. 作用域链的作用: 作用域链描述变量的查找过程。 使用变量的时候,先从本作用域查找有没有声明该变量,如果没有去上层作用域查找,有就停止查找,没有继续向上层作用域查找,一直到全局作用域,如果都没有报错。
    3. 作用域链只与函数声明的位置有关系,与函数调用的位置无关!
    		// 定义全局变量
            var username = '芳芳';
            // 声明函数
            function fn() {
                console.log('fn函数:', username);
            }
            // 声明函数
            function func() {
                // 定义变量
                var username = '大悲';
                // 调用 fn 函数
                fn();
            }
            // 调用 func()
            func();
    
    展开全文
  • 形参与实参

    2020-02-07 13:55:39
    //形式参数,形参也是局部变量(局部和全局同名,听局部的,全局变量作用范围太大,反而大家不听他的) } max(int x,int y){}//实际参数 形参和实参的类型应相同。 实参变量对形参变量的数据传递是值传递,即单向传递...
  • 函数形参实参个数匹配 如果实参的个数和形参的个数一致 则正常输出结果 <script> function getSum(num1, num2) { console.log(num1 + num2); } getSum(1, 2); //3 </script> 如果实参的个数多于...
  • function fun(a,b) { } 上述代码,相当于在函数内部定义了a变量和b变量,但不赋值: function fun... 当调用函数、为形参传递实参: fun(1,2); 相当于给变量b和变量b赋值: function fun() { var a = 1; var b = 2; }
  • 简介======================================================================================================一、vector 类型的形参通常,函数不应该有vector或其他标准库容器类型的形参,调用含有普通的非引用...
  • 形参和实参的说明 09

    2020-03-28 17:45:04
    形参作用范围是从方法定义开始到该方法执行结束为止。 实参变量通常可以传输给方法中的形参值的。 实参变量通常需要给初始值,但是形参变量是不能给初始值的。 public class MethodDemo { ...
  • 形参和实参的区别

    2020-12-20 14:00:03
    1)形参作用范围为方法的内部,当方法调用结束后,形参的生命周期也就结束了,因此,在方法外不能使用形参,它只有在被调用时才会分配内存单元,调用结束后会立刻释放内存空间,而实参不能在调用方法的内部使用. ...
  • 1. 作用域:变量起作用的**范围**。 2. Local局部作用域:函数内部。 3. Enclosing 外部嵌套作用域 :函数嵌套。 4. Global全局作用域:模块(.py文件)内部。 5. Builtin内置模块作用域:builtins.py文件。 变量名...
  • 变量的可访问范围 全局作用域:在函数外,使用var声明的变量是全局变量,在任何作用域下都可以访问它。 函数作用域:在函数以内,使用var声明的变量是局部变量,只能在当前的作用域下可以访问。 在函数中,不加var...
  • 【注意】:函数在同一个作用域定义时不允许同名。 函数的调用:概念:函数的使用 无参函数的调用:函数名();//函数调用运算符 有参函数的调用:函数名(实参列表); 函数的形参与实参 在定义函数时,函数名后面括号...
  • 形参与实参的区别

    2019-09-30 07:47:52
    形参,简单来说就是函数头上括号里的参数,其作用范围仅仅在本函数之内。 而实参是调用函数时给形参传值的那些参数,其必须给赋初值(或者通过输入等方式)。 ------------------------------------------------...
  • 全局变量: 全局变量是在整个py文件中声明,全局范围内都可以访问 示例: a = 1 # 全局变量 print(a) print('outside:',id(a)) #查看变量在内存中的地址 def fun(): # global a a = 5 #函数内部局部...
  • 2.作用:配合形参的缺省参数,可以使调用者随意传参。 形参定义方式parameter 缺省形参 1.语法: def 函数名(形参名1=默认实参1, 形参名2=默认实参2, …): 函数体 2.说明: 缺省参数必须自右至左依次存在,如果一个...
  • Java变量,形参,实参

    2017-12-14 21:03:37
    成员变量 成员变量定义在类中,在整个类中都可以被访问。 成员变量分为类成员变量和实例成员变量,实例变量存在于对象所在的堆内存中,类成员变量也叫静态变量,存在于静态域内。...作用范围结束,
  • Java方法的形参和实参

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

    2016-12-09 11:49:38
    数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响,这两个性质分别 是:不允许拷贝数组以及使用数组时(通常)会将其转换成 指针。因为不能拷贝数组,所以我们无法以值传递的方式使用 数组参数。因为...
  • 形参的初始化与变量的初始化一样:如果形参具有非引用类型,则复制实参的值,如果形参为引用类型,则它只是实参的别名。 非引用形参: 普通的非引用类型的参数通过复制对应的实参实现初始化。当用实参副本初始...
  • 1.类别及作用范围 @类变量——在类中用static修饰的字段 存储位置:方法区 生命周期:随着JVM的消亡而消失,生命周期最长 @局部变量——在方法中存在的,或者形参 存储位置:栈帧中 生命周期:...
  • 局部变量和全局变量,以及作用范围

    万次阅读 多人点赞 2018-11-11 13:56:55
    在写工程文件的时候,犯了一个基础性的错误,基础不牢,地动山摇。...变量按作用域分:  全局变量:在整个工程文件内都有效;“在函数外定义的变量”,即从定义变量的位置到本源文件结束都有效。由于同一文...
  • 实参、形参、局部变量和全局变量

    千次阅读 2020-09-15 16:53:39
    目录实参和形参实参数据传递函数调用过程形参实参和形参的关系局部变量和全局变量局部变量局部变量的作用域说明:全局变量全局变量说明: 实参和形参 实参 实际参数简称“实参”。在调用有参函数时,函数名后面括号...
  • 指针做为形参

    2012-04-23 22:35:44
    1, void GetMemory(char *p, int num) { p = (char *)malloc...1)指针没初始化,2)指针p,free或者delete后,p没有设置为NULL,仍然被认为是个合法的指针使用,3)指针操作超越了变量的作用范围
  • @Autowired 作用范围

    千次阅读 2018-04-01 11:14:00
    一、@AutoWired 可以作用于:构造器、方法、参数、属性 二、作用在方法上 @Component public class Student{ private Book book; public Book getBook() { return book; } //@Autowired ...
  • 函数形参定义方式parameter 缺省形参 1.语法: def 函数名(形参名1=默认实参1, 形参名2=默认实参2, ...): 函数体 2.说明:缺省参数必须自右至左依次存在,如果一个参数有缺省参数,则其右侧的所有参数都...
  • 类(class)的类型形参作用范围是整个class,除了静态(static)成员和静态初始化模块. class Test <T> { static { Test<T> test = new Test<T>(); // error static initializer } private ...
  • 形参和实参的作用是实现主调函数与被调函数之间的数据传递,也就是我们通常所说的传参。 形参实际是实参在被调函数中的一份拷贝,调用时压入栈中,分配内存,当调用函数结束,内存就会释放,那一份拷贝随之释放。 ...
  • c语言中形参与实参: 形参 form parameter 实参 real parameter 出现在函数定义中的参数,就叫形参 出现在函数调用中的参数,就叫实参 函数定义: int max( int a , int b ) //这里的a,b就是形参 { //在函数中,...
  • Python-return语句-函数的形参定义

    千次阅读 2018-10-22 18:38:52
    作用: 用于函数中,结束当前函数的执行,返回到调用该函数的地方,同时返回一个对象的引用关系 说明: 1.return语句后跟的表达式可以省略,省略后相当于return None 2.如果函数没有return语句,则函数执行完最后一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,733
精华内容 16,693
关键字:

形参的作用范围