【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对指针求值时,与机器的字长是相关的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
5209文章
20629浏览量
336796 -
C语言
+关注
关注
183文章
7646浏览量
146113 -
嵌入式技术
+关注
关注
10文章
367浏览量
43559 -
字符串
+关注
关注
1文章
596浏览量
23210 -
sizeof
+关注
关注
0文章
9浏览量
6620
发布评论请先 登录
相关推荐
热点推荐
Boost、Buck-Boost、Sepic拓扑有什么区别
工程师们在做电源设计时经常会有升压的需求,而常用的Boost、Buck-Boost、Sepic拓扑均可实现升压。这些拓扑有什么区别,该选哪个呢?
微波雷达和毫米波雷达有什么区别
微波雷达和毫米波雷达有什么区别 前言:不知道大家有没有发现,各种雷达模块的使用开始逐渐加入各种智能家居产品了,像人来灯亮,人走灯灭这种雷达感应的产品早几年就开始进入市场了,还有各种感应开关等产品
人工智能工程师高频面试题汇总:循环神经网络篇(题目+答案)
后台私信雯雯老师,备注:循环神经网络,领取更多相关面试题随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以
用30道电子工程师面试题来拷问堕落的你...
今天用30道电子工程师面试题来拷问堕落的你,你能扛住第几题?1、下面是一些基本的数字电路知识问题,请简要回答之。(1)什么是Setup和Hold时间?答:Setup/HoldTime用于测试芯片
CY7C65214和CY7C65211/3/5有什么区别?
CY7C65214 和其他 USB 串行桥接控制器之间有什么区别:CY7C65211、CY7C65213 和 CY7
发表于 05-29 06:49
【硬件方向】名企面试笔试真题:大疆创新校园招聘笔试题
名企面试笔试真题:大疆创新校园招聘笔试题-硬件
是几年前的题目,不过值得参考一下哦
纯分享贴,有需要可以直接下载附件获取完整资料!
(如果内容有帮助可以关注、点赞、评论支持一下哦~
发表于 05-16 17:31
硬件工程师面试必看试题(经典)
硬件工程师面试试题
模拟电路
1、基尔霍夫定理的内容是什么?(仕兰微电子)
2、平板电容公式(C=εS/4πkd)。(未知)
3、最基本的如三极管曲线特性。(未知)
4、描述反馈电路的概念
发表于 04-21 15:36
【C语言经典面试题】sizeof与strlen有什么区别?
评论