C语言中,sizeof和strlen都是表示字符串长度的吗?谁能告诉我它们两者的区别~~

 我来答
匿名用户
推荐于2017-11-26
展开全部
sizeof 计算的是数据在内存中存放的长度,单位是“字节”,可以对任何数据类型做运算,而且它是一个运算符(和+、-、*、\类似);当对字符串计算时,包含末尾的"\0";当对字符数组操作时,返回的是数组的总的长度,也就是当把数组作为参数传递给sizeof时是不会退化的。strlen 计算的是字符串的长度,单位是“字符”,只能对字符串运算,而且它是函数(不是运算符),计算时,不包含末尾的"\0";当对字符数组操作时,返回的是数组总存放的字符串的实际长度(也就是\0之前的),也就是当把数组作为参数传递给strlen时是会退化成char*指针的。例如:char* str = "Hello!";sizeof(str)值为7;strlen(str)值为6;char str[20] = "Hello!";sizeof(str)值为20;strlen(str)值为6;
匿名用户
2013-09-22
展开全部
把是sizeof 是整个变量的大小 strlen 是字符串的大小(strlen 是首地址进行计数直至遇到'\0' 停止计数):如char buffer[50]="hello world"; ("hello world" d字符后会追加个'\0'字符)printf("%d, %d \n",sizeof(buffer),strlen(buffer)); 结果为50, 11
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式