国贸做网站的公司,青海省公路建设管理局官方网站,枫泾网站建设,广州冼村姓什么sizeof 和 strlen 在 C 语言中都是用于获取某种“大小”的#xff0c;但它们之间有着显著的区别。
sizeof
sizeof 是一个运算符#xff0c;用于计算数据类型或对象在内存中的大小#xff08;以字节为单位#xff09;。它可以在编译时确定结果#xff0c;因为它计算的是类…sizeof 和 strlen 在 C 语言中都是用于获取某种“大小”的但它们之间有着显著的区别。
sizeof
sizeof 是一个运算符用于计算数据类型或对象在内存中的大小以字节为单位。它可以在编译时确定结果因为它计算的是类型或对象在内存中的固定大小。
用法sizeof(type) 或 sizeof(object)返回值size_t 类型的值表示大小以字节为单位特点 在编译时确定结果可以用于任何数据类型包括数组、结构体等对于数组sizeof 返回整个数组的大小包括所有元素
strlen
strlen 是一个函数用于计算字符串的长度不包括终止的 null 字符。它定义在 string.h 头文件中并接受一个指向以 null 结尾的字符串的指针作为参数。
用法strlen(const char *str)返回值size_t 类型的值表示字符串的长度不包括终止的 null 字符特点 在运行时确定结果只能用于以 null 结尾的字符串如果字符串没有以 null 结尾strlen 可能会继续读取内存直到遇到随机的 null 字符或导致程序崩溃
示例
#include stdio.h#include string.hint main() {char str[] Hello, World!;// 使用 sizeofsize_t size sizeof(str); // 返回整个数组的大小包括终止的 null 字符printf(Size of str: %zu bytes\n, size);// 使用 strlensize_t len strlen(str); // 返回字符串的长度不包括终止的 null 字符printf(Length of str: %zu characters\n, len);return 0;}
输出
Size of str: 14 bytes
Length of str: 13 characters
注意在这个例子中sizeof(str) 返回的是整个数组 str 的大小包括终止的 null 字符而 strlen(str) 返回的是字符串 Hello, World! 的长度不包括终止的 null 字符。