C语言,字符常量可以给字符型变量赋值,而字符串通常被存放在一个_______中

老哥们,填空里填啥... 老哥们,填空里填啥 展开
 我来答
丶海拓丶
2018-09-25 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:91
采纳率:73%
帮助的人:47.6万
展开全部
填写静态内存区
常量存储总结
局部变量、静态局部变量、全局变量、全局静态变量、字符串常量以及动态申请的内存区

1、局部变量存储在栈中
2、全局变量、静态变量(全局和局部静态变量)存储在静态存储区
3、new申请的内存是在堆中
4、字符串常量也是存储在静态存储区

补充说明:
1、栈中的变量内存会随着定义所在区间的结束自动释放;而对于堆,需要手动free,否则它就一直存在,直到程序结束;
2、对于静态存储区,其中的变量常量在程序运行期间会一直存在,不会释放,且变量常量在其中只有一份拷贝,不会出现相同的变量和常量的不同拷贝。

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

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

该地址为字符串中第一个字母Z的地址。

当使用printf()输出时,格式化时选择%s,会输出zhouming,这是printf遇到结尾符号‘\0’即停止显示打印。

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

那一般的int i=1;

所有的字符窜常量都被放在静态内存区
因为字符串常量很少需要修改,放在静态内存区会提高效率
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式