内存区域

来源:6-1 内存布局相关面试问题

nickgogo

2018-10-09

程序中定义的字符串常量,是在内存的哪个区域中的

写回答

1回答

于海

2018-10-09

关于字符串常量,下面有篇文章解释的很清晰:

char *c="hello world";
书上说:"hello world"这个字符串被当作常量而且被放置在此程序的内存静态区。
c为一个字符型指针,若为局部变量,则存储在栈内,该指针变量里面存了个地址,

该地址为字符串中第一个字母h的地址。
当使用printf()输出时,格式化时选择%s,会输出hello world,这是printf()遇到结尾符号'\0'即停止显示打印。

字符串"hello world"是个常量,存储在一片连续的内存中,末尾有结尾符表示字符串的结束。

那一般的int i=1;

所有的字符窜常量都被放在静态内存区
因为字符串常量很少需要修改

0
1
nickgogo
内存静态区对应的课程中的那个区域,代码段,还是已初始化数据区
2018-10-09
共1条回复

资深大牛带你深度剖析ios高级面试

从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系

1749 学习 · 600 问题

查看课程