注册 登录
编程论坛 C++教室

菜鸟又来了

weststreet 发布于 2011-02-11 21:13, 685 次点击
char a[]="abcdefg" ;
为什么用strlen()函数计算长度的结果为7而不是8?不是最后还有一个'\0'么?
7 回复
#2
五当家2011-02-11 21:25
你这题的字符数组a的长度就是7,strlen()函数测的就是a的长度,而不是实际所占的物理位置,所以是不包括后面的\0的.
#3
weststreet2011-02-11 21:40
为什么书上说编译器根据初始值的个数自动确定a长度为8?这句话怎么理解?
#4
lintaoyn2011-02-12 07:18
数组a的大小为8字节
#5
pangding2011-02-14 01:41
以下是引用weststreet在2011-2-11 21:40:11的发言:

为什么书上说编译器根据初始值的个数自动确定a长度为8?这句话怎么理解?

就是说,这个語句
char a[]="abcdefg";
会被编译器自动修改成:
char a[8]="abcdefg";
#6
你们都要疼我哦2011-02-14 02:54
sizeof(a)  shi 8
strlen shi 7
#7
gsdgold2011-02-28 23:10
同意楼上的
#8
c4534135162011-03-05 07:49
strlen()是计算字符串的长度,不是计算字符串所占有的空间,所以'\0'不在计算之内……
1