内存中的变量存储在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?