C++中定义一个函数为bool类型的作用「建议收藏」

C++中定义一个函数为bool类型的作用「建议收藏」1.bool型函数bool型函数(即返回值为bool类型的函数)的作用——获取函数返回值boolgetvalue(boolb){if(b==true)returntrue;elsereturnfalse;}intmain(){//在main()中调用函数就可以得到5261函数的返回结果4102cout<<boolalpha<<getValue(true);return0;

大家好,又见面了,我是你们的朋友全栈君。

1.bool型函数

bool型函数(即返回值为bool类型的函数)的作用——获取函数返回值

bool getvalue(bool b){ 
   
    if(b == true)
        return true;
    else
        return false;
}

int main(){ 
   
    //在main()中调用函数就可以得到5261函数的返回结果4102
    cout<<boolalpha<<getValue(true);
    return 0;
}

2.return true 和return false

bool类型的函数返回值只有两种可能:true(真)false(假)

bool可用于定义函数类型为布尔型,函数里可以有 return true; return false 之类的语句。

return true;和return false;是两种状态,函数返回一个bool类型表示对于给定的输入做出判断,代表一种状态,很多情况下需要判断某些状态来选择性的执行操作的。但是如果不需要这种状态,可以不用返回任何值,void即可。

bool类型常作为循环、选择语句的判断依据。比如if(a());这个if语句就需要判断a()的返回值为true还是false,若是true,才会执行if语句内的操作。while()语句也需要bool类型来判断。

示例如下:

#include<iostream>
using namespace std;
int main(){ 
   
    cout<<"2>3="<<boolalpha<<(bool)(2>3)<<endl;
    return 0;
}

示例:

#include<iostream>
using namespace std;
bool cmp(int a,int b){ 
   
    if(a > b){ 
   
        return true;
    }else{ 
   
        return false;
    }
}
int main()
{ 
   
    int a = 5;
    int b = 6;
    if(cmp(a,b)){ 
   
        cout << "a> b!" << endl;
    }else{ 
   
        cout << "a< b!"  << endl;
    }
    return 0;
}

3.bool与BOOL的区别

BOOL是微软定义的typedef int BOOL,用途是解决程序在C与C++中环境的差异。

BOOL与bool不同,它是一个三值逻辑,TRUE/FALSE/ERROR,定义于WinDef.h头文件中。返回值为1的整数为TRUE,0为FALSE,-1为ERROR。
实际上BOOL为int型,占4个字节,标准赋值:TRUE和FALSE。TRUE和FALSE在预处理阶段都会分别被1和0替换。由此可见BOOL和bool区别为:在这里插入图片描述
示例1:

   boolx=-19,y=0,z=10;

    cout<<"x值:"<<x<<endl;

    cout<<"y值:"<<y<<endl;

    cout<<"z值:"<<z<<endl;

   

输出结果为:

 x值:1
 y值:0
 z值:1

其中x,z的值为true,被转换为1输出,y的值为false,被转换为0输出

示例2:

BOOL x=-19, y=0, z=10,a=1;

得到的结果为:

 x值:-19
 y值:0
 z值:10
 a值:1

由此可知
1)bool的取值只有true和false两种,非零值被转为true,零被转为false
2)BOOL是int型,当值为0时,可认为是FALSE,当值为1的时候,可看做TRUE

注意
1)如果是写标准的C++,那么就全用bool;
2)如果是写vc++,就尽量使用BOOL,避免转换产生的性能警告。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133648.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月8日 上午7:00
下一篇 2022年6月8日 上午7:16


相关推荐

  • FL studio 20简易入门教程 — 第六篇 — 调音台和自动化包络线

    FL studio 20简易入门教程 — 第六篇 — 调音台和自动化包络线本文将主要聚焦于调音台和自动化包络线 前者是想要做出各种各样奇幻好听的音乐效果的核心 后者则是想要实现不停变化的效果所必须的技能 自动化包络线是编曲中的重要一环 需要好好掌握

    2026年3月26日
    2
  • VUE中$refs的基本用法

    VUE中$refs的基本用法ref 有三种用法 1 ref 加在普通的元素上 用 this refs ref 值 获取到的是 dom 元素 2 ref 加在子组件上 用 this refs ref 值 获取到的是组件实例 可以使用组件的所有方法 在使用方法的时候直接 this refs ref 值 方法 就可以使用了 3 如何利用 v for 和 ref 获取一组数组或者 dom 节点应注意的坑

    2026年3月19日
    4
  • OPC服务器比较

    OPC服务器比较目前支持OPC服务器的组态软件有很多种,其中四种软件即:Intellution公司的iFIX(3.5)、GE公司的Cimplicity(6.0)、Wonderware公司的InTouch(9.5)以及Siemens公司的WinCC(6.0)应用最广、功能最强。Intellution公司和Wonderware公司是专门从事监控软件工作的,在市场占领绝大部分份额;Cimplicity和WinCC是GE

    2022年6月20日
    47
  • iText5实现Java生成PDF文件完整版

    iText5实现Java生成PDF文件完整版最近项目中使用到Java实现导出PDF文件,经过一番参考研究最终决定使用itextpdf来实现,当然也可以参考PDFJava类库:Spire.PDFforJava(https://www.e-iceblue.cn/spirepdfjava/create-pdf-in-java.html)。本文是使用第一种来实现的。iText是著名的开放源码的站点sourceforge一个项目,是用于生…

    2022年6月15日
    89
  • Faulty Odometer【水题】

    Faulty Odometer【水题】FaultyOdomet 2000 1000MS Java Others MemoryLimit 32768 32768K Java Others TotalSubmiss s 1218Accepted s 841ProblemDe Youaregiv

    2026年3月17日
    2
  • Docker镜像自动执行脚本.sh

    Docker镜像自动执行脚本.sh由于博客现在在docker中部署的,每次打包部署,需要停掉旧容器->删除旧容器->删除镜像->将新的jar包打包成镜像->再次运行,每次发布都需要重复的执行此操作,于是想将所有命令写成脚本,jar包上传之后,运行脚本即可。命令:app_name=’java-blog’app_port=’8081’# 停止正在运行的容器echo ‘……stop container……’docker stop ${app_name}# 删除容器echo ‘…..

    2022年6月13日
    198

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号