精华内容
下载资源
问答
  • 大家在bash编写中,经常需要用到循环,但循环中变量作用范围的问题有些朋友不是很懂,这里简单分享下,方便需要的朋友
  • 主要介绍了Python变量作用范围,实例分析了Python中变量的定义与相关作用域,是Python学习中非常重要的基本技巧,需要的朋友可以参考下
  • c++中的变量作用范围

    千次阅读 2017-06-08 12:31:01
    接着我们再看,这个时候在输出的时候增加了::,这样一来,输出的a就不是函数内部的局部变量了,而是外面的全局变量,就好像一个类的静态成员变量,事实上所有的文件都可以看成是一个class,如果想要调用函数外面的...

    因为最近项目很忙,所以只是暂时做个简单的笔记,以后有时间了我会再重新做个整理:

    顺便附上一个网站,可以在线写代码的,适合进行小规模的代码测试(做开发当然是不可能的):

    点击打开链接

    在平时的c++中:

    #include <iostream>
    using std::cout;
    using std::cin;
    
    int a = 1;
    
    int main(){
        cout << a;
        return 0;
    }
    我们知道,在main函数外定义一个变量,在main函数里面可以直接调用(其他函数也是),相当于是一个全局变量。当然,如果将变量定义在main里面,那么main外面的函数自然是无法调用的。在这里我们不讨论跨文件调用的情况(extern这个以后再说)

    #include <iostream>
    using std::cout;
    using std::cin;
    
    int a = 1;
    
    int main(){
        a = 2;
        cout << a;
        return 0;
    }
    我们先看这样一种最简单的情况,a=2,这是将上面的a的值直接覆盖掉了,相当于更新了变量a的值。

    #include <iostream>
    using std::cout;
    using std::cin;
    
    int a = 1;
    
    int main(){
        int a = 2;
        cout << a;
        return 0;
    }
    这里的情况,在main里面的a前面加了个int,这其实是定义了一个局部变量,这个局部变量只在main里面生效,事实上外面的a=1不是被覆盖了,而是压根儿就没有被调用到。相信这种情况也是非常好理解的。

    #include <iostream>
    using std::cout;
    using std::cin;
    
    int a = 1;
    
    int main(){
        
        a = 2;
        
        
        cout << ::a;
        return 0;
    }
    接着我们再看,这个时候在输出的时候增加了::,这样一来,输出的a就不是函数内部的局部变量了,而是外面的全局变量,就好像一个类的静态成员变量,事实上所有的文件都可以看成是一个class,如果想要调用函数外面的全局变量就可以采用::符号,这个在平时是不需要的,因为函数会在执行的时候先查找内部有没有定义该变量,如果没有,那么就在该文件里寻找,如果在函数内部已经找到了就不会再去函数外面寻找了,所以如果在函数内部定义了某个同名变量,又想要访问外面的变量,那就使用::即可。

    再说一个关于class的变量名称问题:

    #include <iostream>
    using std::cout;
    using std::cin;
    
    class Slime{
        public:
    	//史莱姆的默认攻击力是25,默认生命值是30。
            Slime(int Attack = 25, int Health = 30){
                attack = Attack;
                health = Health;
            }
            int getAttack(){
                return attack;
            }
            int getHealth(){
                return health;
            }
        
        private:
            int attack;
            int health;
    };
    
    int main(){
    
        Slime one(20,50);
    
        cout << one.getAttack() << '\n';
        cout << one.getHealth();
        return 0;
    }
    在这里我们定义了一个非常简单的史莱姆类,并且实例化了一个one对象,不过在史莱姆的构造函数里面,我们将形参用大写开头,然后将其值传给private的值保存起来。这种方法需要形参的名字和private里面需要保存的实参的名字不同,否则保存就会失败,那么可不可以同名呢?答案是可以的,也是利用上面的方法使用::符号如下:

    #include <iostream>
    #include <memory>
    using std::cout;
    using std::cin;
    
    class Slime{
        public:
            Slime(int attack = 25, int health = 30){
                Slime::attack = attack;
                Slime::health = health;
            }
            ~Slime(){
                //cout << "删了";
            }
            int getAttack(){
                return attack;
            }
            int getHealth(){
                return health;
            }
        
        private:
            int attack;
            int health;
    };
    
    int main(){
    
        Slime one(20, 50);
        Slime* two = new Slime;
        
        cout << one.getAttack() << '\n';
        cout << one.getHealth() << '\n';
        
        cout << two->getAttack() << '\n';
        cout << two->getHealth() << '\n';
    
        //delete two;
        //two = NULL;
    
        return 0;
    }








    展开全文
  • shell 循环变量作用范围

    千次阅读 2015-09-08 08:53:29
    这是因为管道是在子shell中执行的,子shell中的变量对于子shell之外的代码块来说, 是不可见的. 当然, 父进程也不能访问 这些变量, 父进程指的是产生这个子shell的shell. 事实上, 这些变量都是局部变量。   #...
    #!/bin/sh
    
    test()
    {
    	RetVal=0
    
    	cat 1.log | while read line
    	do
    		if[ "$line" == "2" ]
    		then
    			RetVal=1
    		fi
    	done
    	
    	return $RetVal
    }

     

    很容易写出上述代码,上述代码返回值始终为0。虽然执行了RetVal=1这条语句,但是一出while循环,变量值又变成0了。

    这是因为管道是在子shell中执行的,子shell中的变量对于子shell之外的代码块来说, 是不可见的. 当然, 父进程也不能访问

    这些变量, 父进程指的是产生这个子shell的shell. 事实上, 这些变量都是局部变量。

     

    #正确做法
    test()
    {
    	RetVal=0
    
    	while read line
    	do
    		if[ "$line" == "2" ]
    		then
    			RetVal=1
    		fi
    	done < 1.log
    	
    	return $RetVal
    }

     

    展开全文
  • 变量作用范围

    千次阅读 2019-01-14 14:51:39
    变量的作用域:变量作用范围  根据作用域不同,将变量分为以下两类:  (1)全局变量  1.在函数外部定义的变量  2.变量定义时未使用var关键字  3.window对象的属性  (2)局部变量  ...

    变量的作用域:变量的作用范围
                 根据作用域不同,将变量分为以下两类:
                 (1)全局变量
                         1.在函数外部定义的变量
                         2.变量定义时未使用var关键字
                         3.window对象的属性
                 (2)局部变量
                         1.在函数内部定义的变量(包含参数位置)

    定义变量放在函数内部则

    函数内部X1属于函数内部变量,外界获取不到,所以会报错
    y1,z1系统默认全局变量,所以不报错

    报错后边不执行后面的

     (function(){
                var x1 =y1=z1=1;
                
             })();
     console.log(y1); //输出1
     console.log(x1);//报错
     console.log(z1);//前边报错后边不执行 如果在报错前输出1;
    
    


    如果给变量单独赋值(局部变量全局输出)则全部报错

    函数内部手动定义的属于函数内部定义,外界获取不到,所以会报错
            

    (function(){
                var x1=1;
                var y1=1;
                var z1=1;
    
             })();
                console.log(y1); //报错
                console.log(x1);//报错
                console.log(z1);//报错    

    定义变量放在函数内部(局部变量局部输出)则都不会报错

    函数内部手动定义的属于函数内部定义,内部可以接收到
            

    (function(){
                // var x1 =y1 =z1=1;
                var x1 =y1 =z1=1;
                console.log(y1); //输出1
                console.log(x1);//输出1
                console.log(z1);//输出1
    
             })();

                 总结:
                     全局变量生命周期较长,占用内存时间长,不利于回收
                     局部变量生命周期较短,当函数调用完毕时,等待回收,满足快速释放

                     推荐多使用局部变量,少使用全局变量

    展开全文
  • Java中变量作用范围

    千次阅读 2020-01-30 10:58:37
    变量是有**作用范围(Scope)**的,作用范围有时也称作用域。一旦超出变量作用范围,就无法再使用这个变量。 按照作用范围进行划分,变量分为成员变量和局部变量。 (1)成员变量: 在类体中定义的变量为成员变量。它...

    变量是有**作用范围(Scope)**的,作用范围有时也称作用域。一旦超出变量的作用范围,就无法再使用这个变量。
    按照作用范围进行划分,变量分为成员变量和局部变量。
    (1)成员变量
    在类体中定义的变量为成员变量。它的作用范围为整个类,也就是说在这个类中都可以访问到定义的这个成员变量。
    (2)局部变量:
    在一个函数(或称方法)或函数代码块(code block)中定义的变量称为局部变量,局部变量在函数或代码块被执行时创建,在代码块或函数结束时被销毁。局部变量在进行取值操作前必须被初始化或复制操作,否则会出现编译错误。
    Java中存在块级作用域,在程序中任意大括号包装的代码块中定义的变量,它的生命仅仅存在于程序运行该代码时。比如在for或(while)循环体里,方法或方法的参数列表里等。在循环里声明的变量只要跳出循环,这个变量,这个变量变量便不能再使用。同样,方法或方法的参数列表里定义的局部变量,当跳出方法体(method body)之外,该变量也不能再使用了。

    展开全文
  • C++中变量作用范围(可见范围)

    千次阅读 2019-07-25 11:33:21
    局部变量: 作用域为当前代码块,即{}中。在代码块外部不可见。 静态变量: 局部静态变量,即在代码块中声明的静态变量作用域为当前...类静态成员变量作用域为当前类,超出类范围则不可见 static int a;...
  • 局部变量和全局变量,以及作用范围

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

    千次阅读 2018-03-24 19:52:25
    Python变量作用范围 全局变量 在函数外部定义的,可以在该变量后面任何地方调用该变量,那么这个变量就是全局变量。如果不加显示声明,全局与局部变量同名时,全局变量会被隐藏,这和C++类似。 局部变量 在...
  • 怎么做:当局部变量与全局变量同名时在局部变量作用域内,可以通过关键字this来引用成员变量。 特别注意:关键字this代表的是一个对象,只能用在非静态中,不能用在静态中,因为在静态中this可能是类名也可能是...
  • Shell变量作用

    千次阅读 2019-01-28 17:06:06
    全局变量、局部变量、环境变量
  • C语言变量作用范围

    千次阅读 多人点赞 2016-05-11 10:07:34
    变量作用范围 1 局部变量  1.1 举例  1.1.1 形式参数  1.1.2 定义在函数体内的变量,也成为自动变量,由关键字auto说明,可以省略  1.1.3 定义在复合语句中的变量  1.2 定义在函数体内  1.3 使用栈的原理...
  • 全局变量作用范围和顺序

    千次阅读 2017-08-04 10:44:21
    作用范围:所有区间 Ⅱ.执行顺序:由上到下,而不是同时指向所有区间 eg: public class test3{ public static void main(String[] args){ int a=1; while(a>=1&&a System.out.println(a); //测试 a++; } ...
  • Java之路:变量作用

    千次阅读 多人点赞 2018-12-15 09:50:01
    变量作用域 变量是有作用范围(Scope)的,也即作用域。一旦超出变量的作用域,就无法再使用这个变量。 按作用域范围划分,变量分为成员变量和局部变量。 (1)成员变量 在类体内定义的变量称为成员变量,它的...
  • 头文件中的静态变量作用范围

    千次阅读 2019-05-29 22:38:35
    一 问题 之前在阅读linux内核代码时,发现一个...好像跟我们学的static用法不一样,一般static声明的变量,其作用范围就是限制在定义该变量的源文件里。 二 解答 于是网上搜了下,在stackoverflow里发现有人问过...
  • 本文主要介绍C++中的局部变量、全局变量、以及动态内存管理的变量。本文不涉及静态变量static,所以描述的观点不包括static变量。...这部分变量存储在 全局/静态存储区,这部分变量作用域是从...
  • MySQL变量作用

    千次阅读 2018-10-01 15:53:47
    变量作用的区域范围 局部作用域 使用declare关键字声明(在结构体内:函数/存储过程/触发器),而且只能在结构体内部使用 会话作用域 用户定义的,使用@符号定义的变量,使用set关键字 在当前用户当次连接...
  • JS中的变量作用

    万次阅读 多人点赞 2018-06-30 11:59:07
    作用域说明:指一个变量作用范围1.全局作用域(1) 全局作用域在页面打开时被创建,页面关闭时被销毁(2) 编写在script标签中的变量和函数,作用域为全局,在页面的任意位置都可以访问到(3) 在全局作用域中有全局对象...
  • JAVA - 变量作用

    万次阅读 多人点赞 2018-06-03 13:20:49
    JAVA用一对大括号作为语句块的范围,称为作用域,在作用域里定义的变量,只有在该作用域结束之前才可使用。 在JAVA中,变量作用域分为四个级别:类级、对象实例级、方法级、块级。* 类级变量又称全局级变量或...
  • 局部变量和全局变量作用

    万次阅读 2019-06-30 19:10:34
    局部变量:在函数内部定义的变量,只在函数内部起作用,函数执行结束,变量会自动删除 即在一个函数内部定义的变量,只在本函数范围内有效 全局变量:“在函数外定义的变量”,即从定义变量的位置到本源文件结束都...
  • C语言变量作用

    千次阅读 2020-03-23 10:22:39
    文章目录一、变量作用域二、全局变量三、局部变量四、函数的参数五、注意事项六、课后作业七、版权声明 一、变量作用作用域是程序中定义的变量存在(或生效)的区域,超过该区域变量就不能被访问。C语言中有...
  • 在javascript中变量作用范围

    千次阅读 2016-08-17 16:11:06
    因为根据变量定义的范围不同,变量有全局变量与局部变量之分。直接定义的变量是全局变量,可以被所有的脚本访问;而在函数中定义的变量是局部变量,只能在函数内部有效。如果二者使用的变量名一样,局部变量就会覆盖...
  • C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量。 一、局部变量局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。...
  • PHP变量作用范围

    千次阅读 2019-09-24 10:45:35
    变量作用范围就是这个函数。 案例 <?php function test(){ $a=10; echo $a; } test(); echo "<hr />"; echo $a; ?> 案例结果 全局变量 在php 脚本中,函数外部定义的变量 变量的作用域为整个PHP ...
  • linux中的环境变量作用

    千次阅读 2019-09-25 12:57:04
    Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量(称之为 Linux中定制的环境变量)。但是仍有些环境变量是用户都需要的,我们称之为Linux中...
  • Python 变量作用

    万次阅读 多人点赞 2015-06-25 13:29:53
    变量作用域(scope)在Python中是一个容易掉坑的地方。 Python的作用域一共有4中,分别是: L (Local) 局部作用域 E (Enclosing) 闭包函数外的函数中 G (Global) 全局作用域 B (Built-in) 内建作用域...
  • C语言中变量作用范围

    千次阅读 2014-04-12 20:47:43
    变量作用域角度来分,可以分为局部变量与全局变量。 从变量值的存在的时间(即生存期)来分,可以分为静态存储方法和动态存储方式。 所谓静态存储方式是指程序在运行期间由系统分配固定的村粗空间的方式。动态...
  • 这个可以访问的范围称为作用域。 主要的常用的包括:局部变量、全局变量、静态变量。 1、局部变量:就是在函数内声明的变量,他保存在内存的栈内,所以访问速度很快。仅在函数内有效。 2、全局变量:与局部变量相反...
  • Javascript变量作用范围

    千次阅读 2010-04-20 14:01:00
    变量的生命周期又称为作用域,是指某变量在程序中的有效范围。根据作用域,变量可以分为全局变量和局部变量。 1、 全局变量作用域是全局性的,即在整个JavaScript程序中,全局变量处处都在。 2、 而在函数内部...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 517,467
精华内容 206,986
关键字:

变量作用范围

友情链接: michanism_null.rar