static在堆还是栈
答:在在静态存储区。全局变量、static局部变量在静态存储区。malloc new是从堆中分配空间。动态局部变量通常是从栈(确切地说,是从当前task或线程的栈)分配空间,但是,如果CPU的寄存器较多,编译器可能直接利用寄存器存放动态局部变量——不过这并不影响动态局部变量生存期短暂的特点。
答:譬如:动态变量的话:Private Sub Command1_Click()Dim n As Integer n = n + 1 Print n End Sub (每次进入的时候n的值都刷新为0,所以每次打印的结果都是1)如果是静态变量的话:Private Sub Command1_Click()Static n As Integer n = n + 1 Print n End Sub (每次完成单击事件后,...
答:广义:是人在生活过程中,通过获得经验而产生的行为或行为潜能的相对持久为方式。社会上总会出现一种很奇怪的现象,一些人嘴上埋怨着老板对他不好,工资待遇太低什么的,却忽略了自己本身就是懒懒散散,毫无价值。自古以来,人们就会说着“因果循环”,这话真不假,你种什么因,就会得到什么果。这就是...
答:windows下,进程虚拟地址4G,0~2G属于进程私有,进程私有地址布局是:两端各有64k空间,以防指针值为空,地址从低往高是代码段、数据段、栈、堆,static变量在数据段,具体是_DATA段,该段数据都已初始化
答:堆区 栈区 一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静 态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。细心的读者可能会发现,Example 1中的代码中将 static int...
答:不过,不管是JDK8,还是更早的版本中,静态方法的执行(不仅仅是静态方法,还有普通的成员方法)都是在栈内存(stack)中进行的。每个线程都会在栈内存中开辟一个栈,在调用方法时,对应的方法都会在执行这个方法的线程的栈中创建一个“栈帧”,栈帧中保存了局部变量表(基本数据类型和对象引用)、操作...
答:static不能用在方法里面,只能修饰类的属性或者方法。static修饰的变量被放在方法区,因为它属于类变量,是类的一部分。所有的方法中的普通变量都是在栈中的局部变量表中的,如果是引用类型的变量局部变量表会存放引用对象的地址,这个引用对象实际存储在堆中。如果被final修饰的话代表这个引用类型的变量指向...
答:int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 = "123456"; 123456\0在常量区,p3在栈上。static int c =0; 全局(静态)初始化区 p1 = (char *)malloc(10);p2 = (char *)malloc(20);分配得来得10和20字节的区域就在堆区。strcpy(p1, "123456"); 123456\0放在...
答:static int* a=new int();a是一个指针变量(int *类型,4个字节,在静态存储区)a=new int(),动态分配了一个整数的空间,更常用的是动态分配一个数组,比如a=new int[10],动态分配的空间位于堆区,a指针变量保存了动态分配空间的首地址。
答:char *p2; 栈 char *p3 = "123456"; 123456/0在常量区,p3在栈上。static int c =0; 全局(静态)初始化区 p1 = (char *)malloc(10);p2 = (char *)malloc(20);分配得来得10和20字节的区域就在堆区。strcpy(p1, "123456"); ...
网友评论:
华食13827408238:
在函数中声明的static变量是存储在堆栈区域的吗 -
16947路欢
: 在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构. 要点: 堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 ...
华食13827408238:
static变量到底存在什么位置 -
16947路欢
: 引用在栈内存上,变量的值在堆内存上.不知道能不能理解.
华食13827408238:
java里的静态变量是放在了堆内存还是栈内存 -
16947路欢
: 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引...
华食13827408238:
C++里面static申明的变量是存在哪个区(堆区、栈区、代码区,,其他2个忘了) -
16947路欢
: 全局变量、常量,都是在数据区的函数局部变量在栈上动态分配的在堆上
华食13827408238:
java中的全局变量存储在堆上,还是存储静态区??
16947路欢
: 标准的答案!带static就是在静态存储区,反之不是 当我们实例化一个类的时候,首先会创建静态的属性于静态存储区, 之后会创建类所属的属性,就是你说的全局变量于栈中, 如果属性为8种基本数据类型,则栈中存放值, 反之,栈中存放指向堆内存的地址 建议阅读-->
华食13827408238:
c语言里什么变量存储在堆中什么变量存储在栈中啊! -
16947路欢
: 来自百科:1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 .注意它与数据结构中的堆是两回事,分配方式倒是类似于链表.3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域.程序结束后由系统释放.4、文字常量区 — 常量字符串就是放在这里的,程序结束后由系统释放 .5、程序代码区 — 存放函数体的二进制代码.
华食13827408238:
C51中static的用法 -
16947路欢
: static在c里面可以用来修饰变量,也可以用来修饰函数. 先看用来修饰变量的时候.变量在c里面可分为存在全局数据区、栈和堆里.其实我们平时所说的堆栈是栈而不是堆,不要弄混. int a ; int main() {int b ;int c* = (int *)malloc(sizeof(int)); } ...
华食13827408238:
在Java JVM里,如果一个变量被声明为final或者static, 那么这个变量的引用以及它的值被存放在哪? -
16947路欢
: int a = 9;这种变量在编译器就已经知道大小,长度了.所以应该不会放到堆中,都是直接放到栈里面的.
华食13827408238:
在函数的static变量,和全局变量,他们都在栈中被创建?另外,内存条除了栈和堆,还有哪几块? -
16947路欢
: static和全局变量是放在静态区的,栈区放的是局部变量.内存条上存储的一般认为有静态区,堆区,栈区.
华食13827408238:
java,基本类型一定是放在栈中??这句话对吗? -
16947路欢
: 对楼下这两位的回答表示没有讲到核心,“java,基本类型一定是放在栈中??这句话对吗?”这句话我明确的肯定的是错的,基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型在内存中的存储问题来帮你...