如何检查 C++ 中是否存在布尔值

how check if a bool exists in c++

本文关键字:是否 存在 布尔值 C++ 何检查 检查      更新时间:2023-10-16

>我使用

 bool *SomeBool = new bool;

然后我如何检查它是否存在于内存中,因为(据我所知(

if (!SomeBool)
    //Do stuff

如果默认情况下将布尔值设置为 false,则无法正常工作。那么我将如何检查它是否存在呢?

如果要

检查该值,则需要像这样取消引用指针: (*SomeBool)

if(*SomeBool) { // true }

if(!*SomeBool) { // false }

分配一些值相同:

*SomeBool = true; // value is now true!

您创建的bool在您完成调用new ...时存在于内存中,并且不会引发异常。

但是,if(!SomeBool)检查bool地址是否为 0,如果内存分配成功,则永远不会为 0。若要改为访问bool的值,必须先取消引用指针:

if(!(*SomeBool)) //Do stuff

我想再补充一件事。即使您的问题已得到解决。

例如:

sizeof(bool) // size = 1 byte
sizeof(bool *) // size = 4 byte or 8 byte - depending on the architecture 32-bit or 64-bit

因此,基本上您大致使用 5(4+1( 字节或 9(8+1( 字节。我不知道你的实际情况。但是,应该通过重新思考我们的设计和实现来避免这种情况。如果您要为资源稀缺的小型设备编程,这将更加重要。