原创 sizeof()和strlen()的区别.(C)

2009-10-16 13:00 2832 12 12 分类: MCU/ 嵌入式

  • #include <stdio.h>
    int main(void)
    {
      char msg[] = "Hello Nios!";  
      printf("sizeof(msg) = %ld", sizeof(msg));  
      return 0;  
    }

  • sizeof(msg) = 12

 


  • #include <stdio.h>
    #include <string.h>
    int main(void)
    {
      char msg[] = "Hello Nios!";  
      printf("strlen(msg) = %ld", strlen(msg));  
      return 0;  
    }

  • strlen(msg) = 11

可见,strlen(msg)是字符串msg的真实长度,而sizeof(msg)是字符串msg的存储长度。存储长度比真实长度大1。

另外,strlen()需要string.h支持,但sizeof()不需要string.h支持。因此使用sizeof()-1既可得到字符串的正式长度,又可节省开销。

文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /2 下一条