(c语言版)strlen和sizeof的区别

c 复制代码
#include<stdio.h>
#include<string.h>
void Fun(char str[100]){
    printf("7:%d ",sizeof(str)); 
    printf("8:%d ", strlen(str));
    char *p=str;
    printf("9:%d ",sizeof(p));   
    printf("10:%d ", strlen(p));
    printf("11:%d ",sizeof(*p));
    printf("12:%d ", strlen(*p));
}
int main(){
    char str[100]={"a\101\08abc"};
    printf("1:%d ",sizeof(str));   //开辟的字节数为100
    printf("2:%d ",strlen(str));   //遇到第一个\0结束,输出2
    printf("3:%d ",sizeof("a\101\08abc")); //输出8,会计算字符串结尾的\0
    printf("4:%d ", strlen("a\101\08abc")); //遇到\0结束,且不计算\0所占字节
    char *p=str;
    printf("5:%d ",sizeof(p));        
    printf("6:%d ", strlen((p)));
    Fun(str);
}

输出结果:

1:100 2:2 3:8 4:2 5:8 6:2 7:8 8:2 9:8 10:2 11:1

c 复制代码
#include<stdio.h>
#include<string.h>
int main(){
    char str[100]={65,0,'a','b','c'};
    printf("%s",str);
    return 0;
}

输出结果:

A

相关推荐
菜鸟江多多3 分钟前
【STM32 Rocket-Pi原理图分享】
c语言·stm32·嵌入式硬件·mcu·智能硬件·原理图
良木生香5 分钟前
【C语言进阶】文件操作的相关详解(1):
c语言·数据结构·c++
Larry_Yanan5 分钟前
Qt安卓开发(三)双摄像头内嵌布局
android·开发语言·c++·qt·ui
wjs202410 分钟前
Kotlin 条件控制
开发语言
我命由我1234510 分钟前
Kotlin 开发 - Kotlin Lambda 表达式返回值
android·java·开发语言·java-ee·kotlin·android studio·android-studio
雨中散步撒哈拉16 分钟前
22、做中学 | 高一下期 | Golang反射
开发语言·golang·状态模式
a努力。20 分钟前
中国电网Java面试被问:Dubbo的服务目录和路由链实现
java·开发语言·jvm·后端·面试·职场和发展·dubbo
itwangyang52029 分钟前
人工智能药物设计和生信常用 R 包一键全自动安装脚本
开发语言·人工智能·r语言
catchadmin30 分钟前
PHP 8.5 升级生存指南:避免凌晨两点回滚的检查清单
开发语言·php
38242782730 分钟前
JS正则表达式实战:核心语法解析
开发语言·前端·javascript·python·html