代码改变世界

关于strlen和sizeof的区别

2016-06-07 14:48  小竹心语  阅读(225)  评论(0编辑  收藏  举报
 1 #include <stdio.h>
 2 #include <string.h>
 3 //int argc , char *argv[]
 4 int main()
 5 {
 6     char arr[5]="asdf";
 7     
 8     int i=0;
 9     i = strlen(arr);
10     printf("i=%d\n",i);//输出4
11     i = sizeof(arr);
12     printf("i=%d\n",i);//输出5
13     
14     
15     return 0;
16 }

从上面可以看出来上突然冷求字符串长度不包括\0   sizeof则包括

 

#include <stdio.h>
#include <string.h>
//int argc , char *argv[]
int main()
{
    char arr[10]="asdf";
    
    int i=0;
    i = strlen(arr);
    printf("i=%d\n",i);//输出4
    i = sizeof(arr);
    printf("i=%d\n",i);//输出10
    
    
    return 0;
}

从上面可以看出,sizeof不管字符串的结束符,求得是数组定义好的长度