电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

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

  • #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既可得到字符串的正式长度,又可节省开销。

博主
tear086@gmail.com
小時不識月
时常记记, 以防忘记.
点击跳转