电子产业一站式赋能平台

PCB联盟网

搜索
查看: 83|回复: 0
收起左侧

strlen和sizeof的异同

[复制链接]

395

主题

395

帖子

2304

积分

三级会员

Rank: 3Rank: 3

积分
2304
发表于 2023-12-12 21:00:00 | 显示全部楼层 |阅读模式

2dg5h2vtebu6401884337.png

2dg5h2vtebu6401884337.png

" A1 e. l+ w+ T2 H
9 O( s. D, p9 o8 J1,strlen函数作用: 用于计算以空字符'\0'结尾的字符串的长度,即字符串中的字符个数,不包括空字符本身。
" B  c2 U  x* s返回值:strlen返回一个size_t类型的值,表示字符串中字符的数量。% O) E& H' H# f5 i, x6 E
注意事项:strlen 需要在运行时遍历字符串,直到遇到空字符才停止计数。如果字符串没有以'\0' 结尾,strlen可能导致未定义的行为。[/ol]
  • #include #include
    # Z: q/ b: `8 n* }* a9 iint main() {char str[] = "Hello, World!";size_t length = strlen(str);8 C( k: N1 ?5 _5 t- T& g: z0 a* h: }
    printf("Length of the string: %zu
    . l$ ^4 r4 o9 P7 D", length);
    7 p- t8 s! T* E) wreturn 0;}9 o3 V( I$ D2 U8 B- {
    2,sizeof运算符作用:用于获取变量、数据类型或数组在内存中占用的字节数。5 c6 b. ]* f* T$ U( l
    返回值:sizeof返回一个size_t类型的值,表示操作数占用的字节数。- t; W& `/ c. H& k  ~# w6 I% [
    注意事项:sizeof是在编译时确定的,不需要运行时遍历数据结构。对数组使用sizeof可以获取整个数组的大小,但对指针使用sizeof只能获取指针本身的大小。[/ol]
  • #include
    # n+ s; T: U) O+ {' D5 X0 T/ fint main() {char str[] = "Hello, World!";size_t size = sizeof(str);4 b4 M7 W2 l/ z! m  |* ~, z( X. t: Q: _
    printf("Size of the array: %zu bytes$ y" h0 B! l, W4 T2 ?
    ", size);: z  @/ A5 n/ |3 J, c9 X6 E' s7 C
    return 0;}
    8 R% V- U( R( n  S$ C1 o3,异同点计算方式:strlen遍历字符串直到遇到空字符。sizeof在编译时计算大小。
    4 A  O/ A! I5 x9 A$ G适用对象:strlen适用于以空字符结尾的字符串。sizeof适用于变量、数据类型或数组。
    * u# C4 d; o$ T0 {+ r2 u返回值:strlen返回字符的数量。sizeof返回字节数。7 t9 Q5 T# E# C2 G. M( q
    字符串长度:strlen计算字符串长度时不包括空字符。sizeof计算字符串长度时包括空字符。( h( c" y4 o; o5 g) l, ?, i/ ^
    综上所述,strlen和sizeof在功能和用法上有较大差异,前者主要用于处理字符串的长度,后者用于获取数据结构在内存中的大小。7 m3 G; o: j; Q) [0 @
    ==========
    - f8 e9 W/ f, P3 o( R( J* E: M往期回顾:利用STM32CubeMx的串口DMA收发数据
    / D1 f. ~' R/ X+ ]# K( Q好看的PCB也是产品的优势* L7 {4 S% P% w6 ^8 T9 g+ ^: [
    STM32的DMA的五大问题
    1 F7 t9 U, D% q& b3 h1 v0 `单片机的各个通信协议的波特率; Z; \9 l* `2 Z
    C语言有哪些预处理操作?
    . {% g) z, x. e$ `==========2 `9 P4 E' F  u0 @- Y$ w; k4 t" l! s

    14vf1rphkfl6401884438.png

    14vf1rphkfl6401884438.png
    ; H) u2 ~) b( X% Q, d) B( ~

    4 @, t( ?9 r1 D( s3 e. o9 J& ^

    jyd1je4grmb6401884538.png

    jyd1je4grmb6401884538.png
    4 V3 q7 n  O$ ?2 A6 S' g# j

    4 d$ g0 z1 E7 D- l7 b

    3i23kk5j3ln6401884638.png

    3i23kk5j3ln6401884638.png
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表