C语言中,sizeof和strlen都是表示字符串长度的吗?谁能告诉我它们两者的区别~~
2个回答
推荐于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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询