加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言中const和char的那些事儿

(2010-11-22 16:37:05)
标签:

char

const

常量指针

字符数组

it

分类: 编程经验--积跬步至千里
const char *p VS char const *p VS char *const p
const char *p;//指针p指向的是const char,这里的p也就是C++里的string。不可通过p,修改它指向的内容。
//但是请看下面的例子
const char *p="123"; //0x009c674c "123"
p="2456"; //0x009c6888 "2456"
//我怀疑这里使用了类似C++里的复制构造函数。因为跟踪发现,在p的溢出位置上,会填充多个‘\0’,总长度总是8个byte的倍数,随着p的长度变化。
char const *p;//同上
char *const p;//p是一个常量指针,即它指向的内存地址不可改变。内存地址里存的数据结构是char。

const char *p VS char p[]
//两者都是字符数组,但前者长度不固定,后者长度固定;
//前者不可修改单独其中的某些字符,而后者可以任意修改。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有