| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 422 人关注过本帖
标题:字符串和字符数组的长度问题!!!
只看楼主 加入收藏
洁士铭
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-12-25
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:6 
字符串和字符数组的长度问题!!!
程序例子:
         1.  char A[]={"abc"};
         2.  char A[]={'a','b','c'};
为什么第一种赋值方法的数组长度为4,要加上\0,而第二种赋值方法的数组长度为3,不需要加上\0.

求详解!!!
2014-01-07 20:06
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
应该是编译器自动添加吧

DO IT YOURSELF !
2014-01-07 21:19
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:3 
字符数组定义时赋值,赋值内容为字符串时编译器会为其自动加上结束标志 '\0'

三十年河东,三十年河西,莫欺少年穷!
2014-01-07 22:04
洁士铭
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2013-12-25
收藏
得分:0 
回复 3楼 韶志
我知道这是编译器自动添加的,但是两个都是编译器自动添加的,为什么在计算数组长度的时候只有字符串整体赋值的时候才要算上\0
单个赋值时就不用!
2014-01-07 22:40
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:3 
只能说你没有好好看书。

字符数组并不要求它的最后一个字符为'\0',甚至可以不包括,是否需要加'\0',完全根据需要决定,由于系统在处理字符串常量存储时会自动加一个'\0',因此,为了
使处理方法一致,便于测定字符串的实际长度,以及在程序中作相应的处理,通常在字符数组中加上'\0'

思考赐予新生,时间在于定义
2014-01-07 23:23
天使在Jv
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2013-3-31
收藏
得分:3 
你用下面两个数组分别计算它们的长度,你就知道为什么了!
  1.  char A[]={"abc"};
  2.  char A[]={'a','\0','c'};
2014-01-08 00:36
天丛云
Rank: 2
等 级:论坛游民
帖 子:48
专家分:50
注 册:2016-11-8
收藏
得分:0 
学习
2016-11-20 11:32
快速回复:字符串和字符数组的长度问题!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031712 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved