sizeof和strlen比较
sizeof是计算一个数据类型的大小,此类型可以是数组、函数、指针、对象等。
其单位是字节,返回值是sizez_t类型,也就是unsigned int 无符号整型。
strlen是计算一个指定字符串的长度,函数原型是size_t strlen(const char *s)
其返回值是sizez_t,返回的是字符串长度。
区别:
sizeof 是一个运算符,不是一个函数,所以不需要包含在头文件中
strlen需要包含在头文件 # include<string.h>中,参数s是字符串的首地址
sizeof包含“\0"
strlen不包含“\0"
sizeof会计算到字符串最后一个空字符“\0"并结束
strlen遇到第一个空字符“\0"就会立即结束,并且计算的是第一个空字符“\0"前面的长度,不包括’\0’。
通过上述代码可以看出,
第一个printf得出sizeof求的是数组实际所占的内存的字节数,因为是int类型的,每个int 4个字节,8个元素,所以为32.
第二个printf得出,sizeof求的是数组实际所占的内存的字节数,算上字符串结束符’\0‘
第三个printf可以看出,strlen求出的是字符串的实际长度