黑马程序员技术交流社区
标题:
sizeof()和strlen()的区别
[打印本页]
作者:
冯大卫
时间:
2014-9-1 19:15
标题:
sizeof()和strlen()的区别
char arr[10] = "What?";
int len_one = strlen(arr);
int len_two = sizeof(arr);
输出结果为:5 and 10
点评:sizeof返回定义arr数组时,编译器为其分配的数组空间大小,不关心里面存了多少数据。strlen只关心存储的数据内容,不关心空间的大小和类型。
sizeof()返回的是分配数组空间大小,数组空间大小不是由里边的元素决定的吗
作者:
黑马黄武先
时间:
2014-9-1 19:40
sizeof -- 是运算符,不是函数。sizeof 计算 某变量类型 占用字节数;
strlen -- 是函数,计算字符串长度。
作者:
himym2005
时间:
2014-9-1 20:02
这里是 char arr[10] = "What?"; arr表示数组名,是一种数据结构,这个数据结构已经被分配大小的固定空间了,你赋值不赋值那个空间都在,即使你只给数组里面只有一个元素(另外没赋值的元素由编译器赋值),所以sizeof(arr)的出来的这个数据结构的大小,如果改成这样char *arr = "What?"; 那么sizeof(arr) 的结果就为4了
作者:
claud0623
时间:
2014-9-1 20:06
不是的,char arr[10]一使用就分配了10个字节的存储空间。你说的数组空间大小由里边的元素决定是这种情况,char arr[]="What?",这样就是5个字节的空间了。
作者:
zhs
时间:
2014-9-1 21:30
sizeof为运算符,用来计算常量、变量和数据类型的字节数
strlen为函数,用来计算字符串长度
不同点:
1.计算对象不同,sizeof是计算常量、变量和数据类型,strlen是计算字符串
2.sizeof是运算符,strlen是函数
作者:
❤如止水之絕境
时间:
2014-9-1 21:50
strlen是用来计算字符串长度的,而sizeof就用来计算常量或者变量的字节数
作者:
3677065
时间:
2014-9-2 06:24
百度一下其实就能找到很多资料的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2