【C语言经典面试题】sizeof与strlen有什么区别?

描述

【C语言经典面试题】sizeof与strlen有什么区别?

这道经典的面试题,我来跟你一起聊一聊。

1 面试原题

**根据你对C语言的掌握情况,请简要描述下 **sizeofstrlen 的区别。

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对指针求值时,与机器的字长是相关的。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分