首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >常量字符串的问题

常量字符串的问题

作者头像
用户4766018
发布于 2022-08-19 08:27:19
发布于 2022-08-19 08:27:19
9080
举报
文章被收录于专栏:格物致知格物致知

常量字符串与存放在栈中的字符串是C语言面试中经常出现的问题,这可以考察面试者对于C语言数据存储的理解。 我们通过几个例题来看看常量字符串与存放在栈中的字符串

下面的程序有错误吗?为什么?  void test1() {   char* str="hello word!";   str[0] = 'H'; printf(str) ; } 有错误,因为"hello word!",是一个常量字符串,存放于只读的段中,是不可被修改的!向只读数据段写入数据会产生段错误,那么,我们怎么让这个程序合法呢? void test1() {   char str[]="hello word!";   str[0] = 'H'; printf(str) ; } 这样,程序会为str分配地址,str指向的是栈中合法的地址,字符串存放于栈中,是可以被更改的

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011/07/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档