加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

C常见问题之字符串的数组形式与指针形式的差异

发布时间:2021-12-13 11:22:36 所属栏目:教程 来源:互联网
导读:由双引号括起来的字符串常量属于静态存储类型,它被存储在内存的静态存储区内,所以无论字符串常量出现在程序的什么地方,它在程序的整个运行过程中只存储一份。 如果用字符串常量初始化字符数组,就是从静态存储区把整个字符串复制给数组。例如: char a[] =
由双引号括起来的字符串常量属于静态存储类型,它被存储在内存的静态存储区内,所以无论字符串常量出现在程序的什么地方,它在程序的整个运行过程中只存储一份。
 
如果用字符串常量初始化字符数组,就是从静态存储区把整个字符串复制给数组。例如:
 
char a[] = "hello";
 
如果用字符串常量初始化字符指针,就是把字符串在静态存储区的地址复制给指针。例如:
 
char *p = "world";
 
这两种形式的一个重要区别是不能通过指针来修改字符串的值,但是字符数组不存在这个问题,如下语句是错误的:
 
p[0] = 'p';
 
而如下语句没有问题:
 
为了避免通过指针修改字符串的错误,建议将字符指针声明为const类型,如下所示:
 
const char *p = "world";

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读