strlen和sizeof的异同

strlen和sizeof的异同_第1张图片

1,strlen函数

作用: 用于计算以空字符'\0'结尾的字符串的长度,即字符串中的字符个数,不包括空字符本身。


返回值:strlen返回一个size_t类型的值,表示字符串中字符的数量。

注意事项:

  • strlen 需要在运行时遍历字符串,直到遇到空字符才停止计数。

  • 如果字符串没有以'\0' 结尾,strlen可能导致未定义的行为。


#include 
#include 


int main() {
char str[] = "Hello, World!";
size_t length = strlen(str);


printf("Length of the string: %zu\n", length);


return 0;
}

2,sizeof运算符

作用:用于获取变量、数据类型或数组在内存中占用的字节数。

返回值:sizeof返回一个size_t类型的值,表示操作数占用的字节数。

注意事项:

  • sizeof是在编译时确定的,不需要运行时遍历数据结构。

  • 对数组使用sizeof可以获取整个数组的大小,但对指针使用sizeof只能获取指针本身的大小。


#include 


int main() {
char str[] = "Hello, World!";
size_t size = sizeof(str);


printf("Size of the array: %zu bytes\n", size);


return 0;
}

3,异同点

计算方式:

strlen遍历字符串直到遇到空字符。

sizeof在编译时计算大小。

适用对象:

strlen适用于以空字符结尾的字符串。

sizeof适用于变量、数据类型或数组。

返回值:

strlen返回字符的数量。

sizeof返回字节数。

字符串长度:

strlen计算字符串长度时不包括空字符。

sizeof计算字符串长度时包括空字符。

综上所述,strlen和sizeof在功能和用法上有较大差异,前者主要用于处理字符串的长度,后者用于获取数据结构在内存中的大小。

==========

往期回顾:

利用STM32CubeMx的串口DMA收发数据

好看的PCB也是产品的优势

STM32的DMA的五大问题

单片机的各个通信协议的波特率

C语言有哪些预处理操作?

==========

strlen和sizeof的异同_第2张图片

strlen和sizeof的异同_第3张图片

strlen和sizeof的异同_第4张图片

你可能感兴趣的:(strlen和sizeof的异同)