C++ bool 布尔类型

在C++ 中 bool类型占用1个字节长度,bool 类型只有两个取值,true 和 false,true 表示"真",false 表示"假"。

需要注意的C++中使用cout 打印的时候是没有true 和 false 的 只有0和1 ,这里0表示假,非0表示真

1 查看字节

复制代码
int main() {
   bool i = true;
   bool j = false;
   //使用sizeof查看占用的字节
   cout<< "i的字节=" <<sizeof(i) <<",j的字节=" <<sizeof(j) << endl;//打印结果
   return 0;
}

2 验证0表示假,非0表示真

复制代码
int main() {
   // 验证0表示假,非0表示真
   bool i = -100;
   bool j = 0;
   bool k =10;
   // 打印结果i=1,j=0,k=1
   cout<< "i=" <<i <<",j=" <<j <<",k="<<k <<endl;

   return 0;
}

这个说下,bool i = -100 ,是非0的也就是真,由于cout 打印只有true 和false 就是 1 表示真,0表示false 所以就是bool i = -100 为真,也就打印为1 ,同理book k =10 也是这个道理

bool j =0 是false 打印结果为 0

如果上面看着模糊看下面的

复制代码
int main() {
   int a = 1;
   int b = 2;
   cout<< (a>b) <<endl; // 这里a>b 是false 打印结果是0
   cout<<(a<b)<<endl; //  这里a<b 是true 打印结果是1
   return 0;
}

3 bool 赋值true,false 使用

复制代码
int main() {
   // bool赋值true,false使用
   bool i = true;
   bool j = false;
   cout<< "i=" <<i <<",j=" <<j << endl;//打印结果 i=1,j=0
   if (i)
   {
      cout<<"true"<<endl; //打印结果true
   }
   if (j)
   {
      cout<<"true"<<endl;// 不会走到if里面
   }else{
      cout<<"false"<<endl;//打印结果为false
   }
   
   
   return 0;
}

到这里bool 算是回顾完了,我写一个demo 感兴趣的看下,如果在实际开发中自己会不会中招。

isOK(filePath) 不符合预期的 -1 ,

复制代码
#include <iostream>
#include <string>
#include <unistd.h>
using namespace std;
 
bool isOK(const string &filePath){
   return access(filePath.c_str(),R_OK);
}

int main() {
   // 估计设置不经不存在
   const char* filePath ="/home/hly/test.txt";
   cout<< isOK(filePath) <<endl; //打印结果是1 

   cout<< access(filePath,R_OK) <<endl;//打印结果是-1
   return 0;
}
相关推荐
运维行者_19 分钟前
预测性云监控怎么做?AI驱动的7大核心能力与落地路径
服务器·开发语言·网络·数据库·人工智能·python·php
_Narcissus_22 分钟前
B+树的概念和操作笔记(含完整代码实现)
c语言·数据结构·数据库·c++·笔记·b树·算法
aichitang202424 分钟前
快乐泛函每一天!内积空间
c++·python·数学·算法·机器学习·ai·泛函分析
Ravikov27 分钟前
工具开发-ESP32程序管理系统 | 具体实现(一)
c++
名字还没想好☜30 分钟前
Next.js Route Handler 做 SSE 服务端推送:实时进度条、自动重连与什么时候别用 WebSocket
开发语言·javascript·websocket·react·sse·next.js
进制树32 分钟前
【飞控开发实战·㉒】ROS2无人机应用开发实战:Offboard控制、航点任务、AprilTag降落与避障系统
开发语言·安全·无人机·课程设计
江畔柳前堤42 分钟前
LLM + Agent 模型效果评估:从入门到工业级体系构建的完整指南
开发语言·人工智能·自然语言处理·chatgpt·架构·json·batch
路多辛1 小时前
一个 Go 写的全能 AI Agent,讲讲 covo-agent
java·开发语言·golang
欧特克_Glodon1 小时前
OpenCV计算机视觉开发入门与实践<十六>:图像边框和图像轮廓
c++·人工智能·opencv·计算机视觉
wuminyu2 小时前
JDK21中FFM api的upcall回调机制解析
java·linux·c语言·jvm·c++