当前位置: 首页 > 知识库问答 >
问题:

在C++中,使用bool而不是char有什么意义?

慕嘉茂
2023-03-14

sizeof(char)和sizeof(bool)都等于1(在我的编译器/系统/whatever中,我听说它并不总是相同的值),一个bool只能存储true或false,而char可以接受更多的值,并且可以使用按位运算符充当多个bool变量(8位,每个位可以用作1 bool共8个bool)

那么使用bool而不是char有什么好处吗?

那么除了可读性,还有别的吗?我在某处读到,int比short或byte得到更快的处理,即使占用更多的内存。char和bool在速度方面有什么不同吗?

共有1个答案

孙池暝
2023-03-14

使用bool的要点是表达意图。如果一个变量打算存储一个具有真/假语义的值,那么允许附加值只是一个潜在的错误来源。

 类似资料:
  • 问题内容: 最近,在进行程序时,我遇到了一个问题。以下是程序的一部分 我不明白这行代码的作用: 我猜想它正在递增lettercounts数组中特定字符的值(最初为0);我猜’a’的索引是0,’z’的索引是25。但是我想了解那小段代码是如何工作的。 问题答案: 目的是计算每个字符的出现次数。 是一种获取字符在字母表中位置的巧妙方法。会给你0。会给你1。会给你2,依此类推。 该值用作数组的索引(如您正

  • 我只是不明白第二行“==”的意思: -这不是一个测试,没有if语句… -它不是一个变量声明。。。 我以前从未见过这个,事情是是熊猫系列,而不是测试...

  • 我在做一些初学者编码的挑战,其中一个挑战是制作一个反转给定字符串的程序。它对单词起作用,但当我输入单词时,中间有空格,程序只会反转输入的第一个单词。 我谷歌了“java中带空格的反向单词”,发现了这个: > 我可以修改我自己的代码,使它在不遵循上述代码的情况下颠倒一个句子吗?我的代码:

  • 问题内容: 我建议实施这样的超时: 有人可以告诉我使用此方法而不使用setTimeout的原因/优势是什么? 问题答案: 用基本的话指的是angularjs when-指JavaScript。 如果您仍然认为要使用,则需要在之后调用 示例1:$ timeout 示例2:setTimeout(相同的逻辑) 演示版 $超时也返回一个承诺 JS HTML $超时也会触发摘要周期 考虑我们有一些3d派对代

  • 当我今天阅读C标准时,它提到了副作用 访问易失性对象、修改对象、修改文件或调用执行任何这些操作的函数都是副作用 C标准说 访问易失性glvalue(3.10)指定的对象、修改对象、调用库I/O函数或调用执行任何这些操作的函数都是副作用 因此,因为两者都禁止在同一个标量对象上发生未排序的副作用,所以C允许以下内容,但C使其成为未定义的行为 我是否正确阅读了规格?如果存在差异,原因是什么?

  • 但是得到了错误: