strlen和sizeof 简析

来源:互联网 发布:admin.php编程语言 编辑:程序博客网 时间:2024/05/16 00:37

首先,明确strlen和sizeof的主要区别。

strlen:指获取字符串的长度。

sizeof:指指针所指向内容的内存占用空间。

sizeof 的输出结果始终是字节。

sizeof的输出结果大小包含结束符\0。


输出结果如下:


从前三行输出结果可见:

.1、整型在32、64位系统中占4个字节。

.2、10个整型数组占40个字节。这也说明sizeof输出结果都是按字节统计。

.3、指针所占空间为8个字节。16位系统指针占2个字节;32位系统指针占4个字节;64位系统指针占8个字节。

从第四行输出结果可见:

.1、如果初始化了内存大小,指针所指向的内容大小就是初始化所分配的大小。则sizeof的输出结果就是内容所占的内存大小为20.

.2、如果没有初始化分配内存大小。内容的大小就是内容的长度加上\0.

.3、内容遇\0结束。

从第五行输出结果可见:

.1、sizeof参数为指针时,其输出的结果不是指针所指向的内容的大小,而是指针本身的内存大小。

从后两行输出结果可见:

.1、strlen只是输出的字符串长度。不包含结束符\0。确切的说:应该是strlen输出内容(指针所指向的)的长度。显然内容长度不包含\0。



0 0
原创粉丝点击