您的位置:首页 > 其它

字符串,字符串数组,sizeof,strlen

2016-02-19 16:40 211 查看
strlen()遇到\0则停止,计算\0之前的字符个数,而sizeof计算整体的字节大小。

int main()
{
char a[] = "123";
char b[] = { '1', '2', '3' };
char* c = "123";

cout << sizeof(a) << endl;//4
cout << strlen(a) << endl;//3
cout << sizeof(b) << endl;//3
cout << strlen(b) << endl;//错误:15
cout << sizeof(c) << endl;//4
cout << strlen(c) << endl;//3

return 0;
}


其中a和c不用说,都是字符串。

而b是属于字符串数组!是数组。用sizeof计算大小。由于是根据元素个数来初始化的,所以是3。

但是strlen时,由于分配时没有\0,所以只能向后找,答案不是注释中的15,这个结果是不一定的,看内存单元中什么时候遇到\0就停止了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: