sizeof()和strlen()的区别
          
            时间:08-26 10:30 阅读:1177次
*温馨提示:点击图片可以放大观看高清大图
                
         
        
		  
               简介:作者介绍了sizeof()和strlen()的区别。
               
                        
          
            sizeof()
源代码:
1	#include <stdio.h>
2	int main(void)
3	{
4	  char msg[] = "Hello Nios!";  
5	  printf("sizeof(msg) = %ld", sizeof(msg));  
6	  return 0;  
7	}
运行结果:
sizeof(msg) = 12
strlen()
源代码:
1	#include <stdio.h>
2	#include <string.h>
3	int main(void)
4	{
5	  char msg[] = "Hello Nios!";  
6	  printf("strlen(msg) = %ld", strlen(msg));  
7	  return 0;  
8	}
运行结果:
strlen(msg) = 11
结论
1. strlen(msg)是字符串msg的真实长度,而sizeof(msg)是字符串msg的存储长度。存储长度比真实长度大1,多一个结束符。
2. strlen()需要string.h支持,但sizeof()不需要string.h支持。
因此使用sizeof()-1既可得到字符串的正式长度,又可节省开销。