strlen()
strlen() 所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。
原型为size_t strlen(const char string); ,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t; 。注意入口参数是char 类型,也就是只能是字符串或字符数组。包含在头文件string.h中。
sizeof()
在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符/操作符,注意strlen()是一个函数。
其返回值类型为size_t,在头文件stddef.h中定义。这是一个依赖于编译系统的值,一般定义为 typedef unsigned int size_t; ,和strlen()是一样的类型。
sizeof()的情况会比较复杂,有
- 基本数据类型或者表达式的sizeof()。
- 指针的sizeof()。注意在32位机上式4个字节,64位机上式8个字节。
- 函数的sizeof()。应该是函数返回值的数据类型的sizeof()
- 结构体的sizeof()。考虑到字节对齐。
写着写着,突然发现百度百科上写的太全了。。。直接复制过来了。。。