比较strlen和sizeof区别

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较strlen和sizeof区别相关的知识,希望对你有一定的参考价值。

C语言中定义了sizeof操作符,获取一个变量或者类型占据的容量大小。而strlen()是一个函数,获取字符串的长度。程序测试例子如下:

       程序运行结果如下:

       可以看到,p1是一个指针,指向一个字符串。那么,strlen()函数可以获取该字符串的长度。sizeof运算符,获取指针变量p1占据的内存空间大小。

       那么,指针变量p1占据4个字节,所以,sizeof(p1)返回4这个数值。

       但是,如果sizeof操作符,接收的是一个字符串常量,那么,它返回该字符串常量占据的内存空间。程序测试例子如下:

       程序运行结果如下:

    可以看到,sizeof操作符,获取了 "xxxyy123" 字符串所占据的内存空间。它返回9这个数值,是因为占据了9个字节的内存空间。

    注意,"xxxyy123"包含字符串结束符 '\\0',所以,总共包含9个字符,占用9个字节的内存空间。而strlen()函数返回字符串的实际字符个数,返回数值8,不包含字符串结束符。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

以上是关于比较strlen和sizeof区别的主要内容,如果未能解决你的问题,请参考以下文章

sizeof 和 strlen 的区别

sizeof 和 strlen 的区别

sizeof和strlen的区别

strlen和sizeof有啥区别?

14strlen和sizeof区别?

strlen和sizeof的区别