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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Mybatis】动态SQL 实例

    【Mybatis】动态SQL 实例动态SQL是MyBatis的强大特性之一。如果你使用过JDBC或其它类似的框架,你应该能理解根据不同条件拼接SQL语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态SQL,可以彻底摆脱这种痛苦。使用动态SQL并非一件易事,但借助可用于任何SQL映射语句中的强大的动态SQL语言,MyBatis显著地提升了这一特性的易用性。本篇文章要讲的mybatis元素主要有if choose(when,otherwise)

    2022年6月23日
    27
  • 系统设计基础

    系统设计基础

    2021年3月12日
    153
  • 语音_波束形成

    语音_波束形成博客目的:构架语音波束形成的知识体系和资料汇总1.基本概念1.1全向(omnidirectional)与指向(sensitivity)的概念理想的全向麦克理想的指向麦克tips:全指向咪头and单指向咪头全指向咪头的特点:收…

    2022年6月16日
    38
  • vue页面强制刷新缓存不清除_vuex刷新页面数据

    vue页面强制刷新缓存不清除_vuex刷新页面数据mounted(){this.enterPage()},destroyed(){this.leavePage()},methods:{/*打开:load关闭:beforeload+unload刷新:beforeload+unload+load*///离开清除监听leavePage(){window.removeEventListener(‘beforeload’,e=>this.beforeunloadH…

    2022年10月9日
    1
  • 360认证得力数据恢复软件,摄影爱好者的救星

    360认证得力数据恢复软件,摄影爱好者的救星  我是一位计算机工作者,身边许多朋友也经常向我咨询一些电脑方面的问题,最为突出的问题就是如何恢复硬盘数据和sd卡,U盘数据,我用过许多软件,但从没有一款软件像得力数据恢复软件这么优秀,这话一点都不假。  第一,无毒,众所周知,一款软件好坏,无毒是最大的招牌,它是经过360,金山毒霸,百度杀毒,卡巴斯基,电脑管家,诺顿杀毒等主流杀毒软件认证的。干净实用。  第二,下载方便,可以经过该地址:h…

    2022年8月20日
    7
  • 【基因调控网络】Gene regulatory networks modelling using a dynamic evolutionary hybrid(ENFRN ,动态进化混合模型2010)

    【基因调控网络】Gene regulatory networks modelling using a dynamic evolutionary hybrid(ENFRN ,动态进化混合模型2010)ENFRN动态进化混合模型2010摘要跟据基因调控网络重建面临的三个问题:数据高维、时间动态、测量噪声,提出了一种多层进化训练的神经-模糊递归网络(ENFRN),可以用于描述潜在目标基因和调控的类型。其中递归、自组织机构和进化训练等特点优化了弱调控关系,模糊的特性避免了噪声影响的问题,最后为每一组调控都给定了分数。方法最终在酵母的基准数集上进行了测试。各个方法的特点传统方法:Boo…

    2025年8月3日
    3

发表回复

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

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