char * char[] int *指向char*的地址

总结: 1:计算char *a的长度需要strlen     计算char[]的长度需要sizeof
          2:int *  char* ->指针可以互转
          3:strlen 计算的是真实有效的长度

char *a = "hello";
    char b[20] = "hello";
    char c[] = "\x00\x00\x00\x01\x00\x00\x00\x01";
    char d[] = "hello";
    char *e = "\x01";
    
    printf("==%s",a);
    printf("==%s",b);
    printf("ccc==%s",c);
    printf("eee==%s",e);
    printf("==%s",d);
    printf("\n");
    printf("==%lu",(sizeof a)); //指针所以是8
    printf("==%lu",(sizeof b));  //写死了所以是20
    printf("==%lu",(sizeof c));  //自由  一个\x00占一个byte
    printf("==%lu",(sizeof d));  //自由
    printf("==%lu",strlen(a));  //想计算*a的长度
    printf("==%lu",strlen(e)); //想计算*e的长度
    
    
    uint8_t *p_payload = (uint8_t *)a;
    printf("\n");
    printf("==%lu",strlen((char *)p_payload));
    printf("==%s",p_payload);
    
    printf("\n");
    char dd[20];
    memcpy(dd,b,(sizeof b));
    printf("==%lu",(sizeof dd));
    printf("dd==%s",dd);

 

转载于:https://my.oschina.net/zhaodacai/blog/1593503

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值