在内存中这些变量存储在c? [关闭]

问题描述 投票:-7回答:1

如果我有这样的代码:

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

内存(堆栈,数据,堆)中存储的这些变量(尤其是本地未定义变量e)?未定义的局部变量e将具有垃圾值(它来自哪里?)

c memory-management ram rom
1个回答
2
投票
  • 全局变量------->数据
  • 静态变量------->数据
  • 常量数据类型----->代码和/或数据。当一个常量本身存储在数据段中时,考虑字符串文字,并且对它的引用将嵌入到代码中
  • 局部变量(在函数中声明和定义)--------> stack
  • main函数中声明和定义的变量-----> stack
  • 指针(例如:char *arrint *arr)------->数据或堆栈,具体取决于上下文。 C允许您声明全局或static指针,在这种情况下,指针本身将最终在数据段中。
  • 动态分配空间(使用malloccallocrealloc)-------->堆

值得一提的是,“堆栈”被正式称为“自动存储类”。

© www.soinside.com 2019 - 2024. All rights reserved.