C风格字符串并不是说C语言的类型,也不能说是C++语言的类型,而是指以空字符null结束的字符数组。就比如
char c[]={'h','e','l','l','o'};
此时字符数组中存放的是hello;
而char *s="hello";
s中存放的则是hello\0.
在使用strlen计算字符数组长度是,若如此strlen(c),则你得到值不一定是5,而strlen(s)的值一定是5.
原因是:strlen总是把其参数字符串当中是null结尾的。所以strlen(c)时,系统会从c的内存空间开始搜索结束符, 直到找到null为止。所以此时得到的值就不一定准确了。
sizeof操作符:返回一个对象或者类型名的长度。返回值类型为size_t,单位为字节。对数组做sizeof操作,返回的是该数组在内存中的存储长度。