精华内容
下载资源
问答
  • 局部变量和成员变量的定义和区别

    千次阅读 多人点赞 2018-06-23 15:38:07
    局部变量和成员变量的区别和定义 局部变量 成员变量 定义位置: 方法或方法的内部 类的内部,方法的外部 默认值: 无默认值 字面值,(与数组相同)的默认值 使用范围: 从定义行到...
    局部变量和成员变量的区别和定义
      局部变量 成员变量
    定义位置: 方法或方法的内部 类的内部,方法的外部
    默认值: 无默认值 字面值,(与数组相同)的默认值
    使用范围: 从定义行到包含其结构的代码块结束 本类(内有效)
    命名冲突: 局部变量之间不允许重名 可与局部变量重名,局部变量优先

    注:如果成员变量的声明和赋值分开完成,则赋值语句必须在方法的内部。

    展开全文
  • verilog全局变量和局部变量定义

    千次阅读 2020-01-21 22:55:44
    1、局部变量定义(parameter) 声明: parameter xx = 8;(注意有等号,且后面有分号) 使用:xx 作用域:parameter 作用于声明的那个文件。 另外parameter可以用作例化时的参数传递。具体方法参见《Verilog例化...

    1、局部变量定义(parameter)
    声明:

    parameter xx = 8; (注意有等号,且后面有分号)

    使用:xx

    作用域:parameter 作用于声明的那个文件。

    另外parameter可以用作例化时的参数传递。具体方法参见《Verilog例化时的参数传递》一文 

     

    2.全局变量定义(`define )(注意撇号来自键盘左上方破浪线那个键,不是单引号)

    声明

    `define xx 8  (无等号,且不用分号)

    使用:`XX(使用该斌两时必须在变量前加撇号)
    作用域:`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。

     

    3.如何让变量在整个项目都有效

    如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:
    `ifndef xx
    `define xx yy // or parameter xx = yy;
    `endif

    `define也可以写在编译器最先编译的文件顶部。通常编译器都可以定义编译顺序,或者从最底层模块开始编译。因此写在最底层就可以了。

    展开全文
  • 全局变量从定义变量的位置至源文件的结束均有效。局部变量作用于在本函数范围内。如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。 从变量值的存储类别上区分,可将...

    从变量值的作用区域上区分,可将变量划分为全局变量和局部变量。全局变量从定义变量的位置至源文件的结束均有效。局部变量作用于在本函数范围内。如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。

    从变量值的存储类别上区分,可将变量划分为静态存储与动态存储两种。静态存储在整个程序运行期间均具有固定的存储区间,动态存储则是在程序运行期间根据需要动态分配存储空间。在整个程序中,若多次调用同一个函数,则分配给此函数中局部变量的存储空间地址可能不同。整个存储区间类型又可以分为四种:自动变量存储、静态局部变量存储、寄存器变量存储、外部变量存储。

    自动变量:函数中的局部变量一般均为动态存储。

    静态局部变量:函数中的静态局部变量在函数调用结束后其占用的存储单元并不释放,其对应的变量值保留原值。通过关键词static声明。静态局部变量属于静态存储,在静态存储区间分配存储单元,在整个程序运行期间都不会释放。静态局部变量的赋值是在编译时进行,类似于全局变量,只需要赋初值一次即可。如果没有赋初值,编译时自动赋初值为0(数值型变量)或空字符(字符型变量)。自动变量的赋初值则是在程序运行期间进行的。每调用一次函数相当于执行一次赋值语句。对自动变量而言,因为每次函数调用后存储单元释放,下次调用时会对自动变量进行重新分配存储单元,而分配的存储单元中的值是不确定的,因此自动变量的初值不确定。需要注意的是,即便静态局部变量函数调用结束后仍存在,但因为其为局部变量,其他函数仍不能直接引用此变量。

    寄存器变量:一般情况下静态存储或动态存储的变量均存放在内存中,但若局部变量的使用频率特别频繁,则可将此变量的值存放在CPU的寄存器中来提高执行效率。此种变量为“寄存器变量”,使用register作声明。但只有局部自动变量和形式参数可作为寄存器变量,其他(如全局变量)不行。局部静态变量不能作为寄存器变量——不能把变量既放在静态存储区中又放在寄存器中。而且一个计算机系统中的寄存器数目是确定的,不能无限制的使用寄存器变量。现在的编译系统一般可自动识别使用频率较为频繁的变量,从而自动将其放在寄存器中而无需人工优化。因此一般可忽略使用关键字register。

    以下为小结:

    作用域

    存储类别

     

     

     

    局部变量

    自动变量(动态局部变量,本函数内有效,函数调用结束后消失)

    静态局部变量(编译时分配初值,本函数内有效,函数调用结束后值仍保留)

    寄存器变量(本函数内有效,函数调用后值消失,一般编译器自动优化)

    形式参数可定义为自动变量或寄存器变量

     

    全局变量

    静态外部变量(仅在本文件内引用有效)

    外部变量(其他文件可引用,不过需要添加extern声明或以文件形式)

     

    展开全文
  • 编程语言的三大发展阶段:面向机器语言、面向过程语言、面向对象语言 ; 其中面向对象语言主要体现三个特征:封装性、继承、...2、类声明的变量称为对象变量,也简称 对象 ; 3、class 关键字是用来定义类 ; 4、...

    编程语言的三大发展阶段:面向机器语言、面向过程语言、面向对象语言 ;

    其中面向对象语言主要体现三个特征:封装性、继承、动态 ;

    类的定义:类声明和类体。基本格式如下:

    class 类名{

       类体

    }

    特点:

    1、类是Java程序的基本要素,一个Java应用程序就是由若干个类所构成;

    2、类声明的变量称为对象变量,也简称 对象 ;

    3、class 关键字是用来定义类 ;

    4、类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为;

    4、类名必须是合法的Java标识符;

    Java标识符详细说明:(以及中文标识符的说明)

    https://blog.csdn.net/LagerSwan/article/details/104081548


    类的声明:

    如下所示:

    class Number {

    .....

    }

    class 数字 {

    .....

    }

    其中 class Number 与 class 数字 称为类的声明,而 Number 和 数字 则为类名 ;


    类体,即 { } 中的内容:

    类体的内容由如下两部分构成:

    • 变量的声明:用来存储属性的值 ;(体现了对象的属性)
    • 方法的定义:方法可以对类中声明的变量进行操作;(体现了对象的行为)

    如下代码演示:

    public class Class_Test {
    	int number = 10;
    	double numberd = 11.111;
    	double TestDouble() {
    		double numbers = 100 ;
    		numbers += numberd;
    		return numbers;
    	}
    	public static void main(String[] args) {
    		Class_Test test = new Class_Test();
    		System.out.println(test.TestDouble());
    	}
    }

    在以上代码中,声明了一个类 Class_Test ,两个变量 number 与 numberd ,一个方法 TestDouble() ,一个主方法 main () ;


    成员变量的定义:

    一、成员变量的类型:

    成员变量的类型可以是Java中的任何一种数据类型,包括了基本数据类型:整形、浮点型、逻辑类型、字符类型 ;引用类型中的:数组、对象和接口;  

    如下代码演示:

    public class Class_Test {
    
    	public static void main(String[] args) {
    		
    		//成员变量的说明
    		//基本数据类型的成员变量
    		int testt = 11 ;
    		float testf = 11.111f ;
    		double testd = 11.11111 ;
    		//引用类型的变量
    		int a [] ;
    		Class_Test test ;
    		
    	}
    }

    在以上代码中,成员变量:testt,testf,testd 是基本数据类型的变量;a [ ] ,test是引用类型的变量,a [ ] 为数组的变量,test 为类声明的变量,即类对象;

    二、成员变量的有效范围:

    成员变量在整个类内都是有效的,其有效性与它在类体中声明的先后位置是不关的;

    如下代码演示:   最终输出: 110

    public class Class_Test {
    	
    	//成员变量的有效范围:
    	int number = 11 ;
    	int Int_Test(){
    		int int1 = number * digit ;
    		return int1;
    	}
    	int digit = 10 ;
    
    	public static void main(String[] args) {
    		//类体的说明
    		Class_Test test = new Class_Test();
    		System.out.println(test.Int_Test());	
    	}
    }
    

    不建议大家这样编写程序,当代码量多时,对代码的可读性有一定的影响,建议先声明成员变量,再定义方法;

    三、成员变量的编写风格:

    建议大家在声明成员变量时,变量的名字使用驼峰规则,即变量名由多个单词组成时,从第二个单词开始的其他单词的首字母大学;如:computerArea 、ClassExceptionShow 


    方法的使用:

    在类体中,方法的定义包括两部分:方法头、方法体 ;  一般格式如下:

    方法头 {

       方法体

    }

    一、方法头说明

    方法头由方法的类型、名称、名称后面的 () 以及 ()里面的参数列表所构成;

    如下代码演示:

    //无参数的方法头
    double testd (){
        return 11.111;
    }
    
    //有参数的方法头, x 和 y 即为参数
    double testd (double x,double y){
        return x+y;
    }

    二、方法体说明:

    方法体即 方法()后面的 { } 以及 { } 里面的内容;

    在方法体中声明的变量为局部变量,而不是成员变量,局部变量只在方法体内有效,而且与声明时的前后位置有关;

    如下代码演示:

    double testd = 10 ;
    double testd (double x,double y){      //参数 x,y是局部变量
       double sum;                         //参数 sum 是局部变量
       sum = x + y ;
    
       if(sum>x){
           sum += testd ;         //参数 testd 是成员变量(全局变量)
    }
    
        return sum;        //return 语句,返回 sum 的值
    }

    局部变量的介绍:

    1、局部变量不同与成员变量,局部变量只在方法中有效,而且与其声明的位置顺序有关;

    2、若局部变量声明在一个复合语句中,那么该局部变量的有效范围只在复合语句中有效;

    double testd (double x,double y){      //参数 x,y是局部变量
    	   double sum;                         //参数 sum 是局部变量
    	   sum = x + y ;
    	   if(sum != 0){
    	       int ints = 1;        // ints 为复合语句中的局部变量
    	       sum += ints ;
    	}
            double bottom = 1.1;
            bottom += ints ;         //程序报错:ints cannot be resolved to a variable
    	    return sum;
    	}

    3、若局部变量声明在一个循环语句中,那么该局部变量的有效范围只在循环语句中有效;和以上复合语句是一样的;


    总结:成员变量与局部变量的区别

    1、局部变量不同与成员变量,局部变量只在方法中有效,而成员变量在整个类中都有效;

    2、局部变量与其声明的位置顺序有关,而成员变量与其声明的位置顺序无关;

    3、若局部变量的名字和成员变量的名字相同,那么成员变量会被隐藏,即在方法体中成员变量暂时是无效的,如下代码演示:

    class Test_Variable {
        int x = 10 , y ;
       void tests () {
          int x = 5 ;
          y = x + 10 ; //y的值为 15 ,而不是20,此时成员变量 x = 10 在该方法体中,暂时失效;
       }
    
    }

    4、当想使用方法中被隐藏的成员变量,可以使用关键字 this 进行调用,如下代码演示:

    class Test_Variable {
        int x = 10 , y ;
       void tests () {
          int x = 5 ;
          y = this.x + 10 ; //此时 y 的值为 20 ,而不是15,this.x调用的为成员变量 x = 10 ;
       }
    
    }

    5、成员变量有默认值,而局部变量没有默认值,因此在使用局部变量时,要确保该局部变量是有初始值的,否则程序报错;

    class Test_Variable {
    
               int  y ;
    	   void tests () {
    	      int x;       //报错:The local variable x may not have been initialized
    	      y = x + 10 ; 
    	   }
    
    }

     

     

     

    展开全文
  • js 中定义的 全局变量,局部变量

    千次阅读 2018-10-17 10:19:27
    关于变量和参数问题: var a = 2; //全局变量 function func() { var a = 1; //局部变量 ...函数外面定义变量是全局变量,...*在函数内使用var关键字定义变量是局部变量,即出了函数外边无法获取。 js函数定义...
  • 全局变量与局部变量定义关系

    千次阅读 2017-05-12 14:45:52
    定义全局变量时,我们的全局变量是放在全局数据区中,而定义局部变量时,是放在栈中的。 局部变量是可以和全局变量重名的,但是局部变量就相当一个地头蛇,在一个函数或者循环中可以屏蔽全局变量,使全局变量失效...
  • 之前都是定义的要么是全局变量要么就局部变量,从来没加过static,现在看到有的变量前面加了static,不知道什么类型的变量要这样定义
  • python中全局变量与局部变量

    万次阅读 多人点赞 2019-03-01 15:27:17
    局部变量就是定义在一个函数体内部的变量 全局变量是定义在外面的变量 比如: a = 1 def f(): b = 2 其中a就是全局变量,而b是局部变量局部变量只在函数体内部有效,出了函数体,外面是访问不到的,而全局变量...
  • 目录 1 变量分类 1.1 用户变量 ...1.3.1 局部变量定义 1.3.2 赋值 1 变量分类 MySQL数据库中的变量分为MySQL系统变量和MySQL用户变量 1.1 用户变量 1.1.1 用户变量定义 MySQL用户变量:基...
  • 之前在项目的存储过程中发现有通过 `DECLARE` 关键字定义变量如`DECLARE cnt INT DEFAULT 0;`,还有形如 `@count` 这样的变量,存储过程中拿过来直接就进行设置,像这样`set @count=1;`,这两种类型的变量究竟有...
  • 1、普通局部变量只有执行到变量定义的语句的时候才分配空间。 2、static局部变量在编译阶段(函数还没有执行),变量的空间已经分配。 3、普通局部变量离开作用域{},自动释放其空间,也就无法使用此变量。 4、...
  • /**********************************************...*函数内部定义局部变量与全局变量重名时,函数在使用该变量的时候会以局部变量覆盖全局变量,也就是只有局部变量会起效果。 ********************************...
  • 局部变量没有访问权修修饰符(public private...),但有修饰符static (静态)final(常量)transient (该属性不能被序列化)volatile 线程安全 定义位置: 成员变量:类中,方法外 局部变量:方法里、方法的参数、...
  • 全局变量全局变量又叫成员变量,它是声明在类里,函数,静态语句块外的变量,全局变量又分为类变量(静态变量)、实例变量两种....而static修饰的类变量(静态变量)在类装载的时候就会被初始化,也就是说一处修改多处改变.
  • 新手小白学 JAVA 方法 局部变量 成员变量

    万次阅读 多人点赞 2021-04-01 23:59:30
    2.2 局部变量 位置:定义在方法里或者局部代码块中 注意:必须手动初始化来分配内存.如:int i = 5;或者int i; i = 5; 作用域:也就是方法里或者局部代码块中,方法运行完内存就释放了 2.3 成员变量 位置:定义在类里方法...
  • 全局变量和局部变量

    千次阅读 2017-01-01 21:37:03
    局部变量的作用域:在一个函数内部定义的变量只能在本函数内部进行使用。 OK,上面的效果用Java语言实现一下:public class App1 { public static int k = 10;//相当于全局变量 public stati
  • MySQL入门 SQL语言之十八:系统变量(全局变量、会话变量),自定义变量(用户.../*说明:变量由系统提供,不是用户定义,属于服务器层面 使用的语法: 1、查看所有的系统变量 show global variables; SHOW session ...
  • 局部变量无论你赋值不赋值,都称为定义,以下情况会报错:int main(){ int a; int a;}全局变量声明+赋值=定义,以下是声明是可以的;int a;int a;void main(){}但是,以下这种情况是不允许的,会报错,重复定义int...
  • OOP中局部变量与成员变量

    千次阅读 2019-04-19 21:02:35
    局部变量定义 局部变量是定义在方法中或定义在循环体中的变量。 局部变量创建的位置 局部变量创建于栈内存中 局部变量的初始化 局部变量在创建时系统不会给出默认值,若要使用该局部变量,必须在使用前对其进行...
  • 新手求解!谢谢啦。检查过了,全部都是英文输入。 ![图片说明](https://img-ask.csdn.net/upload/201602/02/1454425360_537525.png)
  • 1、局部变量://就是定义在函数内部的变量(内部变量),局部变量起作用的范围是函数内部。//局部变量就是私有的变量2、全局变量://就是定义在函数外部的变量(外部变量),//全局变量起作用的范围是当前文件中的...
  • 全局变量和局部变量的区别在于作用域的不同,全局变量在整个文件里都是可以访问的,而局部变量只能在某个函数内调用。 代码1: a = None def f1(): global a a = 20 b = a + 100 return b print('Pass_a: ', a...
  • 关于java成员变量和局部变量

    万次阅读 多人点赞 2018-09-14 10:46:45
    在Java语言里,根据定义变量位置的不同,可以将变量分成两大类:成员变量(存在于堆内存中,和类一起创建)和局部变量(存在于栈内存中,当方法执行完成,让出内存,让其他方法来使用内存)。二者的运行机制存在较大差异...
  • SQL局部变量

    千次阅读 2017-02-24 16:16:31
    1.局部变量定义: DECLARE 局部变量名 数据类型 【后面可以用逗号连接n个】 局部变量名必须是以@开头,要符合标识符的命名规则。 2.局部变量的赋值: 用SET或SELECT语句为局部变量赋值。 SET 局部变量名=表达式 ...
  • 对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量...
  • 全局变量 全局变量又叫成员变量,它是声明在类里,函数,静态语句块外的变量,全局变量又分为类变量(静态变量)、实例变量两种...而static修饰的类变量(静态变量)在类装载的时候就会被初始化,也就是说一处修改多处改变....
  • python3 全局变量和局部变量

    万次阅读 2018-08-10 14:37:56
    1.定义在函数内部的变量称为局部变量(函数的形参也是局部变量) 2.局部变量只能在函数内部使用 3.局部变量在函数调用时才能够被创建,在函数调用之后会自动销毁 全局变量: 1.定义在函数外部,模块内部的变量称为...
  •   基本概念: 作用域:起作用的区域,也就是可以工作的范围。 代码块:所谓代码块,就是用{}括起来的一段代码。... 普通的局部变量定义的时候直接定义或者在前面加上auto void func1(void){&nbs...
  • 变量定义以后,是有一定的使用范围,称之为变量的作用域。比如Java中,变量的使用范围是变量声明时所在的{}范围,而python的作用域对应的为同一个缩进。按着变量的使用范围给变量划分成如下两种: 1.全局变量:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 540,180
精华内容 216,072
关键字:

局部变量是由用户定义的变量