这个变量存储在内存中的什么地方?

where in memory are this variables stored on c?

如果我有这样的代码:

const int a=2;
int b;
int main()
{
const int c=4
static int d;
int e;
int f=5;
}

这些变量存储在内存(栈、数据、堆)的什么地方(特别是局部未定义变量e)? 未定义的局部变量 e 将有一个垃圾值(它来自哪里?)

  • 全局变量------>数据
  • 静态变量------>数据
  • 常量数据类型----->代码and/or数据。在常量本身存储在数据段中并且对它的引用将嵌入代码中的情况下考虑字符串文字
  • 局部变量(在函数中声明和定义)-------->堆栈
  • main函数中声明和定义的变量----->堆栈
  • pointers(ex: char *arr, int *arr) --------> 数据或堆栈,取决于上下文。 C 允许您声明一个全局或 static 指针,在这种情况下,指针本身将在数据段中结束。
  • 动态分配space(using malloc, calloc, realloc) ------> heap

值得一提的是"stack"官方叫"automatic storage class".