公司动态
初步理解--strlen函数与sizeof运算符
一.strlen函数1.定义strlen函数是用于计算字符串长度的函数2.基本格式strlen(字符串/字符数组)注strlen函数要包含头文件#include string.h3.逻辑strlen函数是将strlen函数内的字符串的长度作为其函数的返回值即从括号内起始字符开始逐个向后计算直到 \0 为止注计算字符串长度时不会将\0包含在内4.使用方法注1.即使\0不在末位在中间也会立即停止运算2.如果结尾没有\0就会出现错误读出一串乱码如烫烫烫烫烫烫二.sizeof运算符1定义sizeof 是 C语言中的一个关键字也是一个一元操作符专门用来计算数据类型/变量/表达式的长度单位是字节2. 基本语法sizeof(类型)sizeof表达式打印时要用%zu打印printf(%zu,sizeof(类型))3.特点/逻辑1sizeof计算的是占用内存大小不是字符串长度2会将字符串末尾的\0计算在内3sizeof的返回值返回的是字节数4sizeof后的中的表达式是不赋值的三. sizeof 与 strlen 的区别特性sizeofstrlen性质运算符编译时库函数运行时作用对象类型、变量、表达式以 ‘\0’ 结尾的字符串计算内容内存字节数字符个数不计 ‘\0’对字符串包含 ‘\0’不包含 ‘\0’示例sizeof(“AB”) → 3strlen(“AB”) → 2四. 总结strlen 函数和 sizeof 运算符是 C 语言中两个相似却用途不同的工具strlen函数用途计算以’\0’结尾的字符串的实际字符长度特点运行时计算不包含结束符 ‘\0’注意事项必须包含string.h头文件字符串必须以 ‘\0’结尾否则会出现如烫烫烫的错误sizeof 运算符用途计算数据类型、变量或表达式在内存中占用的字节数特点编译时计算返回的是字节大小注意事项对字符串会包含 ‘\0’括号内的表达式不进行赋值操作核心区别sizeof 是运算符在编译时确定结果计算内存大小strlen 是库函数在运行时计算返回字符个数对于同一个字符串sizeof的值通常比 strlen大 1因为包含 ‘\0’在实际编程中应根据具体需求选择使用需要知道字符串长度时用 strlen需要知道内存大小时用 sizeof。理解两者的区别有助于避免常见的编程错误如缓冲区溢出和内存分配不当等问题。