局部变量

笔试2019-GRANDSTREAM

南笙酒味 提交于 2019-12-01 13:27:11
程序阅读 随机,因为局部变量在栈中,值随机。 上面那个题在x86上都是12因为x86是大端模式 但是在ARM架构的处理器,因为它们是小端模式,则输出x078 判断回文 int hui(const char * s) { if(s == NULL) return 0; int i,j = strlen(s)-1; for(i=0; j>i && s[i] == s[j]; i++,j--) ; return j>i ? 0 : 1; } 来源: https://www.cnblogs.com/wjundong/p/11688420.html

学习Javascript闭包(Closure)

南楼画角 提交于 2019-12-01 12:37:37
原文链接 原文作者: 阮一峰 本文为学习笔记;相较原文可能会有部分注释及修改 转载请注明出处 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量。 function f1(){ var n=999; } alert(n); // error 这里有一个地方需要注意,函数内部声明变量的时候,一定要使用 var 命令。如果不用的话,你实际上声明了一个全局变量! function f1(){ n=999; } f1(); alert(n); // 999 如何从外部读取局部变量? 出于种种原因,我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。 那就是在函数的内部,再定义一个函数。 function f1(){ var n=999; function f2(){

JVM---汇编指令集

女生的网名这么多〃 提交于 2019-12-01 09:52:23
1、 栈和局部变量操作     1.1  将常量压入栈的指令          aconst_null 将null对象引用压入栈 iconst_m1 将int类型常量-1压入栈 iconst_0 将int类型常量0压入栈 iconst_1 将int类型常量1压入栈 iconst_2 将int类型常量2压入栈 iconst_3 将int类型常量3压入栈 iconst_4 将int类型常量4压入栈 iconst_5 将int类型常量5压入栈 lconst_0 将long类型常量0压入栈 lconst_1 将long类型常量1压入栈 fconst_0 将float类型常量0压入栈 fconst_1 将float类型常量1压入栈 dconst_0 将double类型常量0压入栈 dconst_1 将double类型常量1压入栈 bipush 将一个8位带符号整数压入栈 sipush 将16位带符号整数压入栈 ldc 把常量池中的项压入栈 ldc_w 把常量池中的项压入栈(使用宽索引) ldc2_w 把常量池中long类型或者double类型的项压入栈(使用宽索引)    1.2   从栈中的局部变量中装载值的指令   iload 从局部变量中装载int类型值 lload 从局部变量中装载long类型值 fload 从局部变量中装载float类型值 dload

python基础----day4(函数)

帅比萌擦擦* 提交于 2019-12-01 08:59:42
#####全局变量与局部变量######## 1.全局变量:(顶头写,没有任何的缩进),在文件中任何位置都可以调用 2.局部变量:在子程序里定义的变量 ####如果函数内容无global 关键字,优先读取局部变量,无法对全局变量重新赋值。如果没有局部变量,只能读取全局变量。 ----有声明局部变量 def liuxiangyu(): NAME = '刘翔宇' print('我要搞',NAME) liuxiangyu() ------ 无声明局部变量,读取全局变量 NAME = ['SB','刘翔宇'] def liuxiangyu(): # NAME = '刘翔宇' print('我要搞',NAME) liuxiangyu() 但是对于可变类型,可以对内部元素进行操作 如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值 ---无局部变量,直接读取全局变量 NAME = ['SB','刘翔宇'] def liuxiangyu(): global NAME print('我要搞',NAME) liuxiangyu() ---有局部变量,且局部变量在global关键字下方,该局部变量取代全局变量(局部变量在global关键字的上方,报错) NAME = ['SB','刘翔宇'] def liuxiangyu(): global NAME NAME = 'LI'

4 局部变量和全局变量

心已入冬 提交于 2019-12-01 05:23:28
局部变量和全局变量 在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。 全局变量作用域是整个程序,局部变量作用域是定义该变量的函数。 当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用;在其它地方全局变量起作用。 name = "python" def change_name(name): print("before change:",name) name = "linux" print("after change", name) change_name(name) print(name) # 输出 before change: python after change linux python 不用传name 值到函数里,不可以在函数里调用外面的变量 name = "python" def change_name(): name = "linux" print("after change", name) change_name() print(name) # 输出 after change linux python 作用域 作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。 如何在函数里修改全局变量? def change_name():

Vue的应用

我们两清 提交于 2019-11-30 23:57:19
v-once指令 v-once: 单独使用,限制的标签内容一旦赋值,便不可被动更改(如果是输入框,可以主动修改) <div id="app"> <input type="text" v-model="msg"> <!-- 一旦赋值,只可主动更改 --> <input type="text" v-model="msg" v-once> <p>{{ msg }}</p> <!-- 一旦赋值,便不可更改 --> <p v-once>{{ msg }}</p> </div> <script src="js/vue.js"></script> <script> new Vue({ el: '#app', data: { msg: '初始值' } }) </script> v-cloak指令(了解) v-cloak:防止页面闪烁 <style> [v-cloak] { display: none; } </style> <!-- 不处理的情况下,每次新价值该页面,都会先渲染{{}},当vue环境加载成功,{{}}有会被解析消失 --> <!-- 处理后,vue环境没加载好时,#app是被隐藏的,vue环境加载成功,会依次#app的v-cloak属性,就不会出现{{}}渲染闪烁问题 --> <div id="app" v-cloak> {{ }} {{ }} {{ }} </div>

成员变量和局部变量的区别

。_饼干妹妹 提交于 2019-11-30 23:30:49
在类中的位置不同 重点 成员变量:类中,方法外 局部变量:方法中或者方法声明上(形式参数) 作用范围不一样 重点 成员变量:类中 局部变量:方法中 初始化值的不同 重点 成员变量:有默认值 局部变量:没有默认值。必须先定义,赋值,最后使用 在内存中的位置不同 了解 成员变量:堆内存 局部变量:栈内存 生命周期不同 了解 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 来源: https://www.cnblogs.com/smiledGo/p/11644677.html

extern的使用

£可爱£侵袭症+ 提交于 2019-11-30 22:57:48
一、extern声明变量和函数说明这个变量和函数已经在其他文件中定义了; 二、在C++中,extern “C” 表示该函数以C语言的方式编译; 三、全局变量和局部变量同名时,局部变量加上extern则使用这个局部变量。   问题1:C中全局变量局部变量能同名吗?怎么访问全局变量?   可以同名。   如何访问:1.通过指针        2.通过函数        3.用extern int a; //通过函数 int fun(){   return a; } int main(){   int *pa = &a;//通过指针   int a;   printf("%d\n",a);//局部变量   printf("%d\n",fun());   printf("%d\n",*pa);   int b = *pa;   //语句块 块变量   {     extern int a;//在当前语名块中的变量前加extern 相当于是全局的变量     printf("%d\n",a);   }   return 0; } 问题2:C++中怎么访问全局变量/函数?      定义在全局的变量或函数相当于无名名字空间       直接在前面加::   问题3:一个文件访问另一个文件的变量:       被访问的文件将该变量定义为全局变量 int a,在访问的文件中加extern访问

java类ThreadLocal的理解

谁说胖子不能爱 提交于 2019-11-30 22:27:17
ThreadLocal是什么 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。线程局部变量并不是Java的新发明,在其它的一些语言编译器实现(如IBM XL FORTRAN)中,它在语言的层次提供了直接的支持。因为Java中没有提供在语言层次的直接支持,而是提供了一个ThreadLocal的类来提供支持,所以,在Java中编写线程局部变量的代码相对比较笨拙,这也许是线程局部变量没有在Java中得到很好的普及的一个原因吧。 ThreadLocal的设计 首先看看ThreadLocal的接口: Java代码 Object get() ; // 返回当前线程的线程局部变量副本 protected Object initialValue(); // 返回该线程局部变量的当前线程的初始值 void set(Object value); // 设置当前线程的线程局部变量副本的值

java虚拟机的基本结构如图

ⅰ亾dé卋堺 提交于 2019-11-30 21:46:03
1 java虚拟机的基本结构如图: 1)类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)。 2)java堆在虚拟机启动的时候建立,它是java程序最主要的内存工作区域。几乎所有的java对象实例都存放在java堆中。堆空间是所有线程共享的,这是一块与java应用密切相关的内存空间。 3)java的NIO库允许java程序使用直接内存。直接内存是在java堆外的、直接向系统申请的内存空间。通常访问直接内存的速度会优于java堆。因此出于性能的考虑,读写频繁的场合可能会考虑使用直接内存。由于直接内存在java堆外,因此它的大小不会直接受限于Xmx指定的最大堆大小,但是系统内存是有限的,java堆和直接内存的总和依然受限于操作系统能给出的最大内存。 4)垃圾回收系统是java虚拟机的重要组成部分,垃圾回收器可以对方法区、java堆和直接内存进行回收。其中,java堆是垃圾收集器的工作重点。和C/C++不同,java中所有的对象空间释放都是隐式的,也就是说,java中没有类似free()或者delete()这样的函数释放指定的内存区域。对于不再使用的垃圾对象,垃圾回收系统会在后台默默工作,默默查找