设为首页 加入收藏

TOP

C常见问题之字符串的数组形式与指针形式的区别
2014-11-24 02:31:57 来源: 作者: 【 】 浏览:1
Tags:常见问题 字符串 形式 指针 区别

由双引号括起来的字符串常量属于静态存储类型,它被存储在内存的静态存储区内,所以无论字符串常量出现在程序的什么地方,它在程序的整个运行过程中只存储一份。


如果用字符串常量初始化字符数组,就是从静态存储区把整个字符串复制给数组。例如:


char a[] = "hello";


如果用字符串常量初始化字符指针,就是把字符串在静态存储区的地址复制给指针。例如:


char *p = "world";


这两种形式的一个重要区别是不能通过指针来修改字符串的值,但是字符数组不存在这个问题,如下语句是错误的:


p[0] = 'p';


而如下语句没有问题:


为了避免通过指针修改字符串的错误,建议将字符指针声明为const类型,如下所示:


const char *p = "world";


相关阅读


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇百度2014移动研发笔试题目——101.. 下一篇iOS仿网易新闻客户端左右侧栏

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: