关于C++字符char为空和非空时sizeof为多少,以及char的初始化问题

本文探讨了C++中字符变量未初始化和初始化时的sizeof结果,以及如何正确赋值空字符。未初始化的char变量默认为'',初始化后sizeof仍为1。错误地设置为空字符会导致编译错误,空格字符应使用' '表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,当不对字符进行初始化时

char char1;
cout << "size: " << sizeof(char1) << endl;

运行结果:

size: 1

可以看到,不对char1进行初始化赋值的时候,sizeof的结果是1,这是因为没有赋值时,会默认给char1赋一个'\0',我们可以来验证一下:

char char1;

if (char1 == '\0')    //这样写法不严谨,这里只是为了验证
{
    cout << "empty" << endl;
}

ps:这样写其实是不严谨的,在没有初始化char1的情况下对其进行if (char1 == '\0')的操作,会报warning:'char1' may be used uninitialized in this function,这里只是为了验证

运行结果:

empty

2,当对字符进行初始化时

char char2 = 'a';
cout << "size: " << sizeof(char2) << endl;

运行结果:

size: 1

注意!!不可以将char形字符设置成一个空字符,这样的话程序会报错empty character constant

char char1 = '';    //这种写法是错误的

如果需要赋值空格字符可以写成:

char char1 = ' ';

这时如果使用sizeof(char1),那么结果也是1

注意区分二者的区别

以上问题欢迎各位大佬补充、指正、讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值