C语言的布尔类型

在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法:

//定义一个int类型变量,当变量值为0时表示false,值为1时表示trueint flag;flag = 0;//......flag = 1;if( flag ){//......}

但这种做法不直观,而且没有明确flag一定是布尔值。所以我们又借助C语言的宏定义:

//宏定义布尔类型#define BOOL int#define TRUE 1#define FALSE 0//定义一个布尔变量BOOL flag = FALSE;

这种方法虽然直观,但依然是换汤不换药,变量flag在编译器看来依然是int类型。

新版本总会改进一些不好的地方,所以在最新的C语言标准(C99)解决了布尔类型的问题。C99提供了_Bool 型,所以布尔类型可以声明为 _Bool flag。

_Bool依然仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1。

C99还提供了一个头文件 定义了bool代表_Bool,true代表1,false代表0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了。

//导入 stdbool.h 来使用布尔类型#include #include //计算n!,n的值在main中定义int main(void){    int n = 10;    //计算叠乘数    int sum = 1; //用来存放叠乘的结果    bool flag = false;    //叠乘标记    int num = n;    //循环次数    while( !flag )    {        sum = sum * (num--);        //当num=1时结束循环        if( num == 1)        {            flag = true;        }    }    printf ("%d的叠乘值为 %d \n", n, sum);    return 0;}

转载于:https://www.cnblogs.com/NULL-ROOT/p/10363862.html

布尔型函数 c语言,C语言中的布尔值相关推荐

  1. R语言把dataframe中的NA值替换为0

    R语言把dataframe中的NA值替换为0 目录 R语言把dataframe中的NA值替换为0 缺失值替换 方法总结 缺失值替换

  2. R语言生存分析中的OR值是什么?如何解读?

    R语言生存分析中的OR值是什么?如何解读? 目录 R语言生存分析中的OR值是什么?如何解读? #从Logistic模型说起

  3. python中可用于布尔测试的,如何在Python中使用布尔值?

    Python中的布尔值是整数的子类.布尔构造函数- bool .bool类继承自int类. issubclass(bool,int) // will return True isinstance(Tr ...

  4. java语言中声明布尔型_【Java初探02】——Java语言基础

    本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...

  5. C语言中的布尔型变量

    C语言中的布尔型变量     使用C++或JAVA等编程语言较多的人,可能随手就习惯定义一个flag,其数据类型为布尔型,然后用true和false来表示真与假的问题.这个是非常常用的.但是,在C语言 ...

  6. 有关bool(布尔)类型在C语言中的应用

    文章目录 前言 一.bool类型是什么? 二.使用举例 总结 前言 由于学习过程中接触到了bool类型,产生了浓厚的兴趣,便写下这一篇文章来阐述bool类型的大概情况. 一.bool类型是什么? bo ...

  7. 2.2 Go语言中的布尔型和整型

    变量类型 上一节对Go语言中的变量的定义方法进行了介绍,定义的方式一种是显示,一种为隐式.显示定义需要明确变量类型,而隐式定义则根据赋予的值来决定变量的类型.那么Go语言中到底有多少种变量类型呢?可以 ...

  8. C语言与java中函数传参比较

    C语言与java中函数传参比较 首先先说结论:C语言中参数传递有值传递,地址传递,引用传递.但java中的参数传递只有值传递 1.C语言中的参数传递 1>值传递 值传递非常好理解,其实就是对函数 ...

  9. Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处理

    介绍Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处. Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断或关机后,重新开机,运行数据库 ...

最新文章

  1. c++ 类数组_《深入java虚拟机》读书笔记类加载
  2. weblogic获取文件的路径问题
  3. XCTF-MISC-新手区-坚持60s
  4. offes给excel增加下拉选项_财务“救星”:Excel不止可以下拉单元格,还可以进行成本核算...
  5. 编码的奥秘txt_编码的奥秘(Charles Petzold著) PDF扫描版[9MB]
  6. 啦啦外卖45.2至尊版全开源独立版
  7. pythoniris补全缺失值_机器学习iris数据集导入
  8. 缺失magisk正常工作所需的文件_magisk常见错误日志代码 面具模块报错解决措施...
  9. 前端入门参考:写给前端入门者的chat
  10. IJCAI 2022杰出论文公布,大陆作者中稿298篇拿下两项第一
  11. LINUX入门——Linux是什么?
  12. 改oracle sockets,安装GI最后检查时出现warning - Domain Sockets,PRVG-11750
  13. SLIC Superpixels 算法学习笔记
  14. 数据小助手:chenzx.dataassistant.db.NoteColumn设计
  15. Oracle Reports 6i培训教程 - 百度文库
  16. SecureCRT初次使用
  17. 检测手机号qq号是否开通微信的优势和好处
  18. Linux Shell 脚本编程 入门
  19. 什么是“2 Way SSL”以及它是如何工作的?
  20. jira切换中文语言模式

热门文章

  1. SEO即搜索引擎优化
  2. 【第108期】技术大牛都在看的10本书,找到了
  3. 中级职称评审的条件和流程
  4. 腾讯QQ2006自带Addrplus恶意插件之完全清除方法
  5. 楚汉诸侯战天下隐私政策
  6. 北京理工计算机学院夏令营机试,北京理工大学计算机近几年机试真题及题解 上...
  7. 架构师带你玩转分布式锁
  8. HTML+css3个人博客html源码
  9. 科讯 kesionCMS =8.0 9.0 任意下载漏洞最新 Exp
  10. 【驱动代码移植高通平台之二十三】高通平台i2c设备驱动