局部变量 🚀 局部变量存储在栈上,它们只在函数执行期间存在。当函数返回时,局部变量会被销毁。例如:c auto int localVar = 10;静态变量 🛡️ 静态变量也具有静态存储期限,但它们只局限于定义它们的函数或代码块。在main函数中声明的静态变量存储在程序的全局数据区域中。例如:c static int staticVar = 20;...
静态变量和全局变量存储在静态存储区,生命周期从程序开始到结束。 intglobal_v =0;// 全局变量voidfunc(){staticlocal =1;// 静态变量,只会初始化一次} 常量区 字面量常量和一些常量数据存储在常量区。 字符串字面量,比如"hello" 使用const 修饰的变量,比如const int a; 编译时常量(如 #define 和 enum) ...
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域(RW), 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域(ZI)。 - 程序结束后有系统释放 4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放(RO) 5、程序代码区—存放函数...
1. 自动变量(auto) 自动变量是在函数中定义的局部变量,默认情况下存储在栈(stack)中。栈是一种后进先出(LIFO)的数据结构,用于存储局部变量、函数参数和函数返回值等。当函数调用结束时,栈中的局部变量会被自动释放。自动变量的生命周期与函数的执行时间相同。 2. 静态变量(static) 静态变量是在函数中定义的局部...
在C/C++编程中,变量是存储数据的标识符。每种类型的变量都有不同的存储位置,主要分为以下四类:📌 堆区(Heap) 在C语言中,堆区主要用于动态分配内存。通过malloc()、calloc()或realloc()等函数在运行时申请内存。如果申请成功,返回指向所分配内存的指针;失败则返回NULL。当不再需要这些内存时,必须使用free()函...
(1)全局变量和静态变量的存储是放在一块的, 初始化的全局变量和静态变量在一块区域(RW data), 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域(BSS)。 程序结束后有系统释放 如下面(1).1 (1).2 (1).3所述 **/ // (1).1 -- 只要是静态变量,即使是局部的,也不存储在栈中,而是即存储...
1 C语言中局部变量存在栈里,全局变量存静态存储区。局部变量在栈空间上分配,这个局部变量所在的函数被多次调用时,每次调用这个局部变量在栈上的位置都不一定相同。局部变量也可以在堆上动态分配,但是记得使用完这个堆空间后要释放之。全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行...
1、 回顾C语言变量 C语言中变量值的存储位置有两类:CPU的寄存器和内存。变量存储类型关系到其存储位置,除了register型存储在CPU寄存器中,C语言提供的其它三种存储类型(auto型、static型、extern型)的变量均存储在内存中。存储位置不同,决定了变量的生存期和作用域。从时间角度来说,C语言中变量分为静态存储和...
b表示function.uninitialized_static_var在.bss段中。 d表示function.static_var在.data段中。 总结 已初始化的全局变量和静态变量存储在数据段(.data)。 未初始化的全局变量和静态变量存储在未初始化数据段(.bss)。 使用nm命令可以查看编译后可执行文件中的符号表,确定变量的位置。