C语言在内存中数据的存储位置

时间:2021-06-15 12:20:07

char a[] = “linux”
占6个字节,a存储的是首地址,“linux”可以在栈,也可以在堆中
char *p = “linux”
占10个字节,p指针变量占4字节,里面保存的是后面字符串的地址,“linux”占6个字节,存储在代码段。

但字符串要更加灵活:
linux栈中:
char a[] = “linux”
char *p = a;
在代码段:
char *p = “linux”
在数据段:
全局的char a[] = “linux”
void main()
{
char *p = a;
}
在堆中:
就使用malloc