学习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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、(一共三十题) 1.main() { int a[5]={1,2,3,4,5}; int *ptr=(int ...
    iOS_Alex阅读 4,654评论 0 0
  • 一、(一共三十题) 1.main() { int a[5]={1,2,3,4,5}; int *ptr=(int ...
    iOS_Alex阅读 4,147评论 0 2
  • 2018.5.16.星期三.雨 今天下午放学接二宝回家。在路上,女儿跟我说:妈妈,我今天中午跟姐姐学会了做寿司...
    郑惠文妈妈阅读 3,196评论 0 0
  • 文/Nichole 营销/公关 第一次近距离接触并知道张泉灵,是在年初的女性领导力论坛上。后来就发现她一直活跃在各...
    翁萍阅读 2,415评论 0 0
  • 文/伊雪微儿 李达理,一个乐观的"倒霉蛋"。 (1)骗子越来越多了 李达理很胖,肚子上的呼啦圈一层又一层,两只笨重...
    佳迪的音符阅读 3,529评论 0 2

友情链接更多精彩内容