字符数组

chengunfu 2008-04-13 01:52:40
[b]字符数组a[n]只能存放n-1个数组元素吗?字符数组的字符和字符串的存储方式有什么区别啊[/b]
...全文
79 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsmdiao0812 2008-04-14
  • 打赏
  • 举报
回复
char a[]="123";
char *b="123";
char c[]={'1','2','3'};

printf("%d\n",sizeof(a));
printf("%d\n",sizeof(b));
printf("%d\n",sizeof(c));

结果为:4 4 3
阿呆_ 2008-04-13
  • 打赏
  • 举报
回复
毁人不倦
bob_2008 2008-04-13
  • 打赏
  • 举报
回复
6楼的大哥说的太好了!!
bob_2008 2008-04-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bob_2008 的回复:]
字符数组里的元素是可以修改
字符串中的元素不可修改
char s[]="hello" //可以修改元素,分别初始化为'h','e','l','l','o','\0'
char *s = "hello" //不可以
存储方式都一样下标从0开始到n-1,可以通过s[i]取得相就下标的字符
[/Quote]
bob_2008 2008-04-13
  • 打赏
  • 举报
回复
字符数组里的元素是可以修改
字符串中的元素不可修改
char s[]="hello" //可以修改元素,分别初始化为'h','e','l','l','o','\0'
char *s = "hello" //不可以
存储方式都一样下标从0开始到n-1,可以通过s[i]取得相就下标的字符
dingmin8701 2008-04-13
  • 打赏
  • 举报
回复
呵呵
byssx752 2008-04-13
  • 打赏
  • 举报
回复
记住a[n]是非配n个字节的内存,至于存什么东西是你自己放上去的,与‘/0’没有任何关系,字符串例如“abc”,存在内存里实际是占用4个字节的内存,在拷贝字符串时需要多分配一个字节去存放'\0'。
c_spark 2008-04-13
  • 打赏
  • 举报
回复
字符数组里的元素是可以修改
字符串中的元素不可修改
char s[]="hello" //可以修改元素,分别初始化为'h','e','l','l','o','\0'
char *s = "hello" //不可以
存储方式都一样下标从0开始到n-1,可以通过s[i]取得相就下标的字符
chengunfu 2008-04-13
  • 打赏
  • 举报
回复
结尾不是还要存储‘/0’吗
我是风 2008-04-13
  • 打赏
  • 举报
回复
a[n]可以存n个字符,下标从0到n-1。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧