C中字符‘\0‘,“\0“长度

"本文探讨了C语言中sizeof运算符在处理不同数据类型时的行为,包括字符''、单个字符常量和字符串字面量的情况。通过三个示例,展示了sizeof在char、整型和字符串数组中的输出结果差异,深入理解了sizeof在处理不同类型数据时的计算方式。"
摘要由CSDN通过智能技术生成

在阅读redis的开发与设计时遇到与的第一个小问题,以下举例

在以sizeof函数分别输出 char a=’\0’, ‘\0’ , “\0” 三种情况的是否所得到的长度各不相同

1. 以赋值形式,将’\0’赋值于char类型的a变量时,此时sizeof函数输出为 1
#include<stdio.h>
int main(){
    char a = '\0';
    printf("字节数:%d",sizeof(a));
    return 0;
}

此时a为一个空字符,为char类型占1个字节

2. 将’\0’直接使用时,sizeof输出结果为 4
#include<stdio.h>
int main(){
    printf("字节数:%d",sizeof('\0'));
    return 0;
}

其中输出’\0’的长度时,此时’\0’为ASCII 码的形式,以整形的形式输出长度,即结果为4

3. 将"\0"直接使用时,sizeof输出结果为 2
#include<stdio.h>
int main(){
    printf("字节数:%d",sizeof("\0"));
    return 0;
}

在使用双引号时,此时sizeof函数输出的长度为char[]数组,在使用char[]字符串形式时,默认会添加’\0’来结尾标识为字符串,所以sizeof输入""空字符串时也会输出长度为1,在加上’\0’ 为1个字符,即输出结果为2

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值