内存中的变量存储在c,Heap或Stack中的变量中?

int main(void)
{
    int a=10;
    char b[10]="HELLO";
    const int x=10;
    return 0;
}

“a”将仅存储在堆栈中(数据段不可能),其值(10)

“b”将作为一个指针存储(因为数组是一个指向第一个元素的指针)并且“HELLO”将被存储在堆中(就像我们使用malloc一样)。

根据编译器的不同,“x”可以存储在数据,堆栈或文本中。

如果我错了,请纠正我。


“a”将仅存储在堆栈中(数据段不可能),其值(10)

正确。

“b”将作为一个指针存储(因为数组是一个指向第一个元素的指针)并且“HELLO”将被存储在堆中(就像我们使用malloc一样)。

不正确。

把那条线想象成:

char b[10];
strcpy(b, "HELLO");

b是一个数组,而不是一个指针。 堆栈内存用于阵列。

根据编译器的不同,“x”可以存储在数据,堆栈或文本中。

正确。

链接地址: http://www.djcxy.com/p/82371.html

上一篇: Where in memory are variables stored in c, Heap or Stack?

下一篇: Should I make stack segment large or heap segment large?