Alf*_*ong 5 c++ heap stack function global-variables
考虑功能:
char *func()
{
return "Some thing";
}
Run Code Online (Sandbox Code Playgroud)
堆栈中存储的常量string(char数组)"Some thing"是函数调用的本地函数还是堆中的全局函数?
我猜它在堆里.
如果多次调用该函数,那么"Some thing"内存中有多少个副本?(它是堆还是堆栈?)
字符串文字"有些东西"是类型的const char*.因此,它们既不在堆上也不在堆栈上,而是在只读位置,这是一个实现细节.
来自维基百科
数据
数据区包含初始化的程序使用的全局变量和静态变量.该段可以进一步分类为初始化的只读区域和初始化的读写区域.例如,在C中由char s [] ="hello world"定义的字符串和在"main"之外的类似int debug = 1的C语句将存储在初始化的读写区域中.并且像const char*string ="hello world"这样的C语句使字符串文字"hello world"存储在初始化的只读区域中,字符指针变量字符串存储在初始化的读写区域中.例如:static int i = 10将存储在数据段中,global int i = 10将存储在数据段中
| 归档时间: |
|
| 查看次数: |
3459 次 |
| 最近记录: |