内存中哪些部分存储了不同的变量?在开始使用之前谁将为其分配值?

时间:2015-06-10 09:28:42

标签: c memory declaration

根据我的理解,记忆有四个部分。

  • 数据段(BSS,非BSS)
  • 代码段
  • 堆段
  • Stack Segment

堆栈段将存储在函数内声明的所有局部变量。动态创建的变量将进入堆内。初始化的全局变量将在数据段内部 - BSS区域。 非初始化全局变量将在数据段内 - 非BSS区域。所有const变量&宏将进入代码区域。

我们可以指示编译器使用#pragma。

将特定变量存储在内存中的特定位置

我不知道const指针和指针存储在哪里。它在数据段内吗?

请让我知道我的理解是否正确?

我有代码:

#include <stdio.h>
#include <stdlib.h>

#define MAX 10
enum color{
    RED,
    GREEN,
    BLUE
};

int a;
int b=5;
static int c;
static int d=10;
extern int e;
const int f;
const int g = 15;
const int *ptr1;
int *ptr2;

int main(void) {
    // your code goes here
    int h;
    int i=20;
    static int j;
    static int k=25;
    const int l;
    const int m = 30;
    int *ptr3;
    const int *ptr4;

    return 0;
}

在这段代码中,这些变量a - m将存储在哪里?

0 个答案:

没有答案