【C语言经典面试题】sizeof与strlen有什么区别?
这道经典的面试题,我来跟你一起聊一聊。
1 面试原题
**根据你对C语言的掌握情况,请简要描述下 **sizeof 和 strlen 的区别。
2 知识点剖析
在C语言中,sizeof用于求一个变量或符号的内存空间大小,而strlen一般用于求一个字符串的长度,且这个长度是不包括 '\\0'的。
3 示例代码
为此,我写了一段测试代码:
#include
#include
int main(int argc, const char *argv[])
{
char *p = "123456";
printf("sizeof(p) = %d\\n", sizeof(p));
printf("strlen(p) = %d\\n", strlen(p));
return 0;
}
很简单,定义了一个字符串,分别使用strlen和sizeof求值;其值为:
通过运行结果,我们可以知道,两者是不一样的。
4 总结
- strlen一般用于对字符串求长度,且不包括'\\0'字符;
- sizeof一般用于对变量和符号求内存大小;
- 两者是有本质区别的;还有一个注意点就是:sizeof对指针求值时,与机器的字长是相关的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
4981文章
18281浏览量
288399 -
C语言
+关注
关注
180文章
7530浏览量
128526 -
嵌入式技术
+关注
关注
10文章
349浏览量
34273 -
字符串
+关注
关注
1文章
551浏览量
20109 -
sizeof
+关注
关注
0文章
9浏览量
6420
发布评论请先 登录
相关推荐
strlen和sizeof的异同
1,strlen函数作用:用于计算以空字符'\0'结尾的字符串的长度,即字符串中的字符个数,不包括空字符本身。返回值:strlen返回一个size_t类型的值,表示字符串中字符
linux运维面试题目及答案
LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
LVS:是基于四层的转发
HAproxy:是基于四层和七层的转发,是专业的代理服务器
Nginx:是WEB服务器,缓存
发表于 08-20 10:52
•582次阅读
TVS管和稳压管有哪些区别
百度。 一道面试题 照例,先抛出来一道面试题:“TVS管和稳压管有哪些区别?”。其实这算一个开放性问题,没有界定问题的维度、范围,那能说的区别会比较发散。这也造就了不同人给出的答案可能
C语言sizeof和strlen的区别
大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是C语言sizeof和strlen的区别,希望能对你有所帮助
发表于 07-11 11:51
•353次阅读
单片机的C语言里面,有个修饰词const,这个词放到变量类型前和后有什么区别吗?
单片机的C语言里面。有个修饰词const,这个词放到变量类型前和后有什么区别吗?我看到有网友发的两个贴里有这两个用法,不太懂
发表于 06-20 08:24
评论