C语言中的 局部变量,存储在什么地方?

如题所述

第1个回答  2019-11-28
应该是
auto
自动变量。
局部变量缺省是
自动变量
作用文件部位的缺省是
静态变量
第2个回答  2020-02-04
局部变量存储在栈里;堆里存放的是动态分配的内存,有malloc()分配
第3个回答  2020-05-09
栈区,或者CPU通用寄存器中!!!
不知道你对CPU有过了解么???
CPU内核中会有一个叫做SP的寄存器,存放着栈顶地址,所有局部变量,和中间数据都在这里存放,在一个程序调用一个函数,SP指针会增加该堆栈用到的所有临时内存的长度,局部变量也在其中,在函数退出时SP还原到原来的值,这样被调用的函数用到的所有临时数据也都释放。。。
当然也会存在CPU的通用寄存器中,因为有些CPU工作寄存器数量较多,如果局部变量不多,会直接放在寄存器内,而不是
放到内存里,这样也提高了执行速度。。。内存赋值需要取地址和写内存,本身步奏就多,而且内存操作没有寄存器块,
所以如果工作寄存器够用,是会存在工作寄存器(根据编译器而定,当然编译器考虑的通常很周全,会让速度尽量快)
第4个回答  2019-12-07
一般情况下,局部变量存储在栈区
static修饰的局部变量会存储在堆区
栈区的变量随时可能会被释放掉
相似回答