精华内容
下载资源
问答
  • 形参的作用范围
    2021-02-26 19:47:59

    在形参调用中 java的基本数据类型及其包装类型是传值调用,其他对象引用类型是传引用。

    形参调用的时候:

    * 基本类型和包装类型 相当于传了一个复制的值过去,方法内的运算不会回传,不会改变原参数的值。

    * 引用对象类型 则传递了对象的引用,方法内的运算会使对象的属性发生变化。

    基本类型和包装类型

    //基本类型和基本类型的包装类型

    //方法内的形参,只是复制了一份对象,并非传递了对象或引用

    Integer i = new Integer(0);

    @Test

    public void run4() {

    System.out.println("获取i值, i="+i);

    //调方法传参数 i,进行i++

    scope(i);//方法内i值变化了,方法外并未变化

    System.out.println("run4方法内 调scope方法i++后, i="+i);

    i++;//run4 方法内的 i++ 确实的改变了成员变量i的值

    System.out.println("run4方法内 i++后,i="+i);

    System.out.println("获取i值, i="+i);

    }

    public void scope(Integer i){

    i++;

    System.out.println("scope方法内 i++后, i="+i);

    }

    运行结果:

    获取i值, i=0

    scope方法内 i++后, i=1

    run4方法内 调scope方法i++后, i=0

    run4方法内 i++后,i=1

    获取i值, i=1

    引用对象类型:

    class Letter {

    char c;

    }

    public class PassObject{

    static void f(Letter y){

    System.out.println("y.c:"+y.c);

    y.c = 'z';

    }

    public static void main(String[] args) {

    Letter x = new Letter();

    x.c = 'a';

    System.out.println(x.c);

    f(x);

    System.out.println(x.c);

    }

    }

    运行结果:

    a

    y.c:a

    z

    更多相关内容
  • 1.形参是一种局部变量,作用域仅限于该函数 2.形参是一种局部变量,它有自己的空间(当函数被调用时,局部变量的空间被临时申请,同时这个空间的数据被赋值成实际参数的值)。当离开定义它的函数时,分配给他们的...

    1.形参是一种局部变量,作用域仅限于该函数
    2.形参是一种局部变量,它有自己的空间(当函数被调用时,局部变量的空间被临时申请,同时这个空间的数据被赋值成实际参数的值)。当离开定义它的函数时,分配给他们的存储空间就被释放掉了。

    #include<stdio.h>
    void fun(int cmd);
    
    main()
    {
    	int a = 3;//为a开辟空间,这个内存里存放数字3
    	printf("变量a = %d\n",a);
    	fun(a);//a为实际参数,发生函数调用,开辟一个临时空间,存放的是局部变量数字3.(函数调用时,是把实际参数的值拷贝1份给实际参数)。函数执行结束后,该空间由内存管理单元自动收回
    	printf("函数调用结束后,局部变量的空间被释放了 a=%d\n",a);
    }
    
    //形参是一种局部变量,作用域仅限于该函数
    //形参有自己的空间(临时的),当这个函数被调用时,会临时申请一个空间,同时,这个空间内的数据被赋值为实际参数的值。函数调用结束时,该空间被释放
    void fun(int cmd)//cmd为形参
    {
    	printf("cmd = %d\n",cmd);
    	cmd++;
    	printf("cmd自增 = %d\n",cmd);
    }
    

    在这里插入图片描述

    展开全文
  • 函数的动态形参, 作用域一 动态形参如果我们需要给⼀一个函数传参, ⽽而参数⼜又是不确定的. 或者我给⼀一个 函数传很多参数, 我的形参就要写很多, 很⿇麻烦, 怎么办呢. 我们可以考虑使⽤用动态参数动态参数分成两种...

    函数的动态形参, 作用域

    一 动态形参

    如果我们需要给⼀一个函数传参, ⽽而参数⼜又是不确定的. 或者我给⼀一个 函数传很多参数, 我的形参就要写很多, 很⿇麻烦, 怎么办呢. 我们可以考虑使⽤用动态参数

    动态参数分成两种: 1. 动态接收位置参数,   按位置顺序接受实参 ,如果有位置参数必须写在动态参数前面 默认值参数写在最后方可生效, 传参是必须写  形参 = 值

    def func(*args):

    print(args)

    func(1,2,3,4,5)

    >>>(1,2,3,4,5)   # 接收到的实参聚合成元组

    def func(a,*args)

    print(a,args)

    func("这样", 1,2,3,4,5)

    >>>这样 (1,2,3,4,5)

    2 动态接收关键字参数

    def  func(**kwargs)

    **kwargs 关键字的动态传参, 接收到的是字典

    def func(**kwargs):   # key word arguments

    print(kwargs)

    func(a=10, b=20, jay="周杰伦", jj="林俊杰")

    >>>{"a": 10, "b": 20, "jay": 周杰伦, "jj": "林俊杰"}

    func(张无忌=dic['张无忌'], 谢逊=dic['谢逊'], 范瑶=dic['范瑶'])

    func(**dic) # 这里的** 是把字典打散. 字典的key作为参数的名字, 字典的值作为参数的值传递给形参

    小结

    在形参上

    1. 位置参数

    2. 默认值参数

    3. 动态参数

    1. *args  位置参数的动态传参. 系统会自动的把所有的位置参数聚合成元组

    2. **kwargs  关键字的动态传参. 系统会自动把所有的关键字参数聚合成字典

    3.  def func(*args, **kwargs): 无敌传参

    4. 顺序:  位置参数, *args, 默认值, **kwargs

    5. 在使用的时候, 可以任意的进行搭配

    4. 在实参上. *, **表示的打散.  在形参. *,** 表示聚合

    二 作用域 :作⽤用域就是作⽤用范围, 按照⽣生效范围来看分为 全局作⽤用域和局部作⽤用域

    1 全局作⽤用域: 包含内置命名空间和全局命名空间. 在整个⽂文件的任何位置都可以使⽤用(遵循 从上到下逐⾏执⾏).

    局部作⽤用域: 函数内部的变量命名空间     在函数内部可以使⽤用.

    在python解释器开始执⾏行行之后, 就会在内存中开辟⼀一个空间, 每当遇到⼀一个变量量的时候, 就 把变量量名和值之间的关系记录下来, 但是当遇到函数定义的时候, 解释器只是把函数名读入内 存, 表⽰示这个函数存在了了,  ⾄至于函数内部的变量量和逻辑, 解释器是不关⼼心的. 也就是说⼀一开始 的时候函数只是加载进来, 仅此⽽而已, 只有当函数被调⽤用和访问的时候, 解释器才会根据函数 内部声明的变量量来进⾏行行开辟变量量的内部空间. 随着函数执⾏行行完毕, 这些函数内部变量量占⽤用的空 间也会随着函数执⾏行行完毕⽽而被清空.

    我们给存放名字和值的关系的空间起⼀一个名字叫: 命名空间. 我们的变量量在存储的时候就 是存储在这片空间中的.

    命名空间分类:

    @. 全局命名空间--> 我们直接在py⽂文件中, 函数外声明的变量量都属于全局命名空间

    2. 局部命名空间--> 在函数中声明的变量量会放在局部命名空间

    3. 内置命名空间--> 存放python解释器为我们提供的名字, list, tuple, str, int这些都是内 置命名空间

    @作⽤用域命名空间:

    1. 全局作⽤用域:    全局命名空间 + 内置命名空间

    2. 局部作⽤用域:    局部命名空间

    @加载顺序:

    1. 内置命名空间

    2. 全局命名空间

    3. 局部命名空间(函数被执⾏行行的时候)

    @取值顺序:

    1. 局部命名空间

    2. 全局命名空间

    3. 内置命名空间

    @重要关键字

    globals():  查询全局变量命名空间的内容

    locals() :查询当前作用域变量命名空间的内容

    global表⽰不再使⽤用局部作⽤用域中的内容了了. ⽽而改⽤用全局作⽤用域中的变量

    nonlocal 表⽰示在局部作⽤用域中, 调⽤用⽗父级命名空间中的变量, 引入最近的一层,没有则创建

    展开全文
  • 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();
    
    展开全文
  • 32C语言(函数、变量作用范围)单元练习五.doc下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档,不会出现我们的网址水印。3、该文档...
  • 如果想要精通学习C语言是比较困难的,除了在平时需要多思考之外,还需要在平时做好日常总结,在学习C语言的时候,有两种不同的参数,一种是形参,一种是实参,二者的作用范围是不同的,形参和实参是有很大区别的,...
  • C++:默认形参值的作用

    千次阅读 2019-09-28 10:20:28
    函数在声明的时候可以预先给出默认形参值。调用时如果给出实参,那么就采用实参值,否则就使用给出的默认形参值。 【代码】 #include <iostream> using namespace std; int add(int a=3,int b=4){ return a+b...
  • 13.C语言(函数、变量作用范围)单元练习五32(函数、变量作用范围)单元练习五A. f(int array[ ][6]) B. f(int array[3][ ])C. f(int array[ ][4]) D. f(int array[2][5])2. 执行下列程序后, 变量a的值应为______。int ...
  • 1. 作用域:变量起作用的**范围**。 2. Local局部作用域:函数内部。 3. Enclosing 外部嵌套作用域 :函数嵌套。 4. Global全局作用域:模块(.py文件)内部。 5. Builtin内置模块作用域:builtins.py文件。 变量名...
  • 形参和实参的区别

    千次阅读 2020-12-20 14:00:03
    1)形参作用范围为方法的内部,当方法调用结束后,形参的生命周期也就结束了,因此,在方法外不能使用形参,它只有在被调用时才会分配内存单元,调用结束后会立刻释放内存空间,而实参不能在调用方法的内部使用. ...
  • 4.1函数的概念和作用*** 4.1.1 什么是函数: 当被调用时可重复执行的代码块 4.1.2 函数的作用有哪些? 函数的作用就是封装一段代码,将来可以重复使用 4.2函数的定义** 4.2.1函数定义的两种方式** 函数声明式 ...
  • 变量的可访问范围 全局作用域:在函数外,使用var声明的变量是全局变量,在任何作用域下都可以访问它。 函数作用域:在函数以内,使用var声明的变量是局部变量,只能在当前的作用域下可以访问。 在函数中,不加var...
  • 局部变量和全局变量,以及作用范围

    万次阅读 多人点赞 2018-11-11 13:56:55
    在写工程文件的时候,犯了一个基础性的错误,基础不牢,地动山摇。...变量按作用域分:  全局变量:在整个工程文件内都有效;“在函数外定义的变量”,即从定义变量的位置到本源文件结束都有效。由于同一文...
  • 全局变量: 全局变量是在整个py文件中声明,全局范围内都可以访问 示例: a = 1 # 全局变量 print(a) print('outside:',id(a)) #查看变量在内存中的地址 def fun(): # global a a = 5 #函数内部局部...
  • 最近重新翻了一遍《C++ Primer》,看了一下省略符形参的相关内容,发现只有半页左右的内容(可能后面还有),只是提了一下有这种形参语法,作用是兼容C语言,但没有提及如何使用这种形参,以及要注意什么。...
  • C语言函数的形参实参之间的区别,函数的调用
  • 实参、形参、局部变量和全局变量

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

    千次阅读 2020-03-29 21:47:20
    js函数的形参与实参详解 参数:其实就是函数名后面括号中的内容是一种变量,这个变量叫做参数, 参数是指外部传入函数中的变量,但是只能作为变量使用,但是该变量可以是任何内容,也可以是函数,可以被覆盖,这样传入的参数...
  • 函数形参作用范围只是局限于所定义的函数内 D. 函数说明必须在主调函数之前 5、若执行以下程序段,其运行结果是( D )。 char c[ ]={ a , b , \0 , c , \0 }; printf(“%s\n”,c); A. ab c B. a b C.abc D.ab
  • 变量作用作用域-LEGB 是变量起作用范围。 Local局部作用域:函数内部。 Enclosing 外部嵌套作用域 :函数嵌套。 Global全局作用域:模块(.py文件)内部。 Builtin内置模块作用域:builtins.py文件。 变量名的...
  • Python-return语句-函数的形参定义

    千次阅读 2020-12-05 01:11:25
    return语句语法:return [表达式][ ]可以省略作用:用于函数中,结束当前函数的执行,返回到调用该函数的地方,同时返回一个对象的引用关系说明:1.return语句后跟的表达式可以省略,省略后相当于return None2....
  • 形参与实参的区别

    2019-09-30 07:47:52
    形参,简单来说就是函数头上括号里的参数,其作用范围仅仅在本函数之内。 而实参是调用函数时给形参传值的那些参数,其必须给赋初值(或者通过输入等方式)。 ------------------------------------------------...
  • 形参与实参

    2020-02-07 13:55:39
    //形式参数,形参也是局部变量(局部和全局同名,听局部的,全局变量作用范围太大,反而大家不听他的) } max(int x,int y){}//实际参数 形参和实参的类型应相同。 实参变量对形参变量的数据传递是值传递,即单向传递...
  • * PHP函数 -----变量的作用域 课程内容 局部变量 全局变量 静态变量 变量的作用域 变量需要先定义后使用,但这并不意味着变量定义后就可以随便使用,只有在它的作用范围中才可以被使用,这个作用范围称为变量的作用...
  • C语言函数的形参和实参运用调用及举例程序* ● 形参,即函数... 而实参可以是常量、变量或表达式,其作用是 把常量、变量或表达式的值传递给形参。 函数调用时,主调函数把实参的值传送给被调函数 的形参,从而实现...
  • 变量的作用域(scope of a variable) 就指变量在程序中可以被引用的范围。 变量的作用域 public static void method1(){ . . for ( int i = 1 ; i; i++) { . . int j ; . . . } //for结束 } //method1()方法 结束 i...
  • 定义函数时的形参与调用函数时的实参按照位置一一对应 例子: def fun1(a,b,c): print(a,b,c) fun1(1,2,3) 输出结果:1 2 3 2、序列传参 调用函数时用*号将序列拆解开,再通过位置传参一一对应 例子: ...
  • c语言中形参与实参: 形参 form parameter 实参 real parameter 出现在函数定义中的参数,就叫形参 出现在函数调用中的参数,就叫实参 函数定义: int max( int a , int b ) //这里的a,b就是形参 { //在函数中,...
  • 简介======================================================================================================一、vector 类型的形参通常,函数不应该有vector或其他标准库容器类型的形参,调用含有普通的非引用...
  • 作用范围(LEGB原则)二、参数类型1. 两种分类2. 位置参数(**传入时注重顺序**)3. 关键字参数(传入时提供关键字)4. 位置参数、关键字参数的混用一个压箱底的例子 一、函数类型 1. 普通函数 def square(x): # ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,410
精华内容 21,764
关键字:

形参的作用范围

友情链接: iconsext.zip