学习sizeof,strlen区别

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
    char buf[]="hello";
    //从首元素开始,到结束符截止的长度,结束符不算("\0")遇到这个结束 
    int len = strlen(buf);
    printf("len=%d\n",len);
    
    char buf2[]="\0hello";
    int len2 = strlen(buf2);
    printf("len2=%d\n",len2);
    
    //sizeof()测数据类型的长度,不会因为结束符号,提前结束 
    printf("sizeof(buf2)=%lu\n",sizeof(buf2));
    
    char str[100]="mike";
    //打印出4的原因是,strlen遇到“/0”就结束 
    printf("strlen(str)=%lu\n",strlen(str));//4
    //sizeof遇到"/0不结束" 
    printf("sizeof(str)=%lu\n",sizeof(str)); //100
    
    printf("\n");
    system("pause");
    return 0;
}

strlen:从首元素开始,到结束符截止的长度,结束符不算("\0")遇到这个结束
sizeof:测数据类型的长度,不会因为结束符号,提前结束
倒数第二个sizeof为7的原因是,你前面有一个/0算一个,中间文字5个,最后自己补一个/0
注意
strlen遇到/0结束
sizeof遇到/0不结束

strlen,sizeOf区别.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容