首页 > 其他分享 >C语言-布尔类型

C语言-布尔类型

时间:2024-04-29 21:47:00浏览次数:18  
标签:ok int pass C语言 printf 类型 define 布尔

一. 布尔类型——适用于判别真假的类型

说明:布尔类型是一种形式(int)的别名:

int ——> bool

True ——> 1 (其他 非0 都是 1 )

False ——> 0

对应:0为假,非零为真

1. 第一种方式			——使用
   C89标准,使用宏定义(#define )
   格式: #define BOOL int
__________________________________ TRUE、FALSE只是相当于一个常量名,使用其他标识符也可以的(宏定义标识符常量时,常量名一般使用大写字母:为了和变量区别开)
        #define TRUE 1
        #define FALSE 0

2. 第二种方式
   C99标准,添加 _Bool 类型
   格式: _Bool a = -6;		// a 为变量名,非零为真

3. 第三种方式
   C99标准,标准库头文件 <stdbool.h>
   bool true false
   格式:#define <stdbool.h>
    	int main(){

    	bool is_ok = true;	// is_ok是变量(任意起名),true也可以被任意修改(不过会被系统修改,修改遵循(0为0,非零为1)
    	}

总结:三种方式都可以修改布尔类型的变量,不过分为两种:

​ 1、第一种为一种,可以直接修改布尔类型变量的值

​ 2、第二、三为一种,修改时:0为0,其他非零都为1

eg:

第一种 使用宏定义
#include <stdio.h>

#define BOOL int
#define TRUE 1
#define FALSE 0

int main()
{
    //定义布尔类型的变量
    BOOL is_ok =TRUE;
    BOOL is_pass = FALSE;

    //is_pass可以被修改,可以被修改为任何值(一个原则:非零都为1)
    is_pass =-6;
    printf("is_ok=%d, is_pass=%d \n",is_ok,is_pass);
    

    //条件判断
    if(is_ok)
    {
        printf("OK! \n");
    }
    else
    {
        printf("不OK!\n");
    }

    if(is_pass)
    {
        printf("PASS!\n");
    }
    else
    {
        printf("不PASS!\n");
    }
}
第二种 添加 _Bool 类型
#include <stdio.h>

int main()
{
    //定义布尔类型的变量
    _Bool is_ok = 1;
    _Bool is_pass = 0;
    
    //is_pass会被改变的,会根据0为假非零为真(把非零的值都转变为1),只能是0/1
    is_pass = -6;   // is_pass:1
    printf("is_ok=%d, is_pass=%d \n", is_ok, is_pass); 

    // 条件判断
    if (is_ok)
    {
        printf("OK!\n");
    }
    else
    {
        printf("不OK!\n");
    }


    if (is_pass)
    {
        printf("PASS!\n");
    }
    else
    {
        printf("不PASS!\n");
    }

    return 0;
}
第三种 标准库头文件 <stdbool.h>
#include <stdio.h>
#include <stdbool.h>

int main()
{
    // 定义布尔类型的变量
    bool is_ok = true;
    bool is_pass = false;

    is_pass = -6;
    printf("is_ok=%d, is_pass=%d \n", is_ok, is_pass);

    // 条件判断
    if (is_ok)
    {
        printf("OK!");
    }
    else
    {
        printf("不OK!");
    }


    if (is_pass)
    {
        printf("PASS!");
    }
    else
    {
        printf("不PASS!");
    }

}

标签:ok,int,pass,C语言,printf,类型,define,布尔
From: https://www.cnblogs.com/petard/p/18166692

相关文章

  • C语言中四舍五入问题总结
    C语言中四舍五入问题的总结在C语言中大部分情况下都是不需要四舍五入的。除了一种情况:在使用输出函数printf()限制浮点型输出的小数位个数eg:printf("%0.2f",1.567);//输出的结果是1.57其他情况下都不需要四舍五入,比如强制转换在不同类型的混合运算中,编译器也会自动地转......
  • C语言关于头文件的使用
    截图:main.c////Createdbyclouon2024/4/29.//#include<stdio.h>#include"main.h"//包含自己实现的头文件//定义全局变量intcnt;intsum;//定义函数intfunc(intx,chary){return0;}//定义函数intfunc2(intx,inty){returnx+y;}......
  • C语言进制转换与打印
    #include<stdio.h>intmain(){intn1=10;//十进制intn2=0b10;//二进制intn3=017;//八进制intn4=0x1a;//十六进制//以十进制的方式打印printf("%d\n",n1);//10printf("%d\n",n2);//2printf(&q......
  • C语言关于多源文件的调用
    图片A.c////Createdbyclouon2024/4/29.//#include<stdio.h>#include"A.h"voidfunc(){printf("helloworld\n");}A.h////Createdbyclouon2024/4/29.//#ifndefMULTIPLE_SOURCE_FILES_A_H#defineMULTIPLE_SOUR......
  • 关于C语言的常量
    #include<stdio.h>intmain(){//(1)指向整型常量的指针。【constpointer】地址:可变,值:不可变constint*p1;//等价于intconst*p2;printf("[[constantpointer]]beforechangeaddress:%p\n",p1);inta=1;p1=&a;printf(&qu......
  • C语言输入输出
    #include<stdio.h>intmain(){//练习:计算圆的面积,其半径由用户指定floatradius;//圆的半径printf("enterradius:");scanf("%f",&radius);//理解为阻塞式函数constfloatPI=3.14;floatarea=PI*radius*radius;p......
  • p1140 C语言循环数
    #include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#defineN100intmain(){intn,x,y,i,j,p,q,t,s;chara[N]={'0'};while(scanf("%s",&a)!=EOF){intb[N];......
  • ts的类型工具
    看了一遍阮一峰的ts文档,地址:https://wangdoc.com/typescript/utility#capitalizestringtype。ts提供了一些类型工具,在此记录一下,做个总结,加深印象。字符串的类型工具4种:Uppercase<S>字母大写Lowercase<S>字母小写Capitalize<S>首字母大写Uncapitalize<S>首字母小写其他......
  • go语言数据类型转换
    go语言数据类型转换golang不会对数据进行隐式的类型转换,只能手动去执行转换操作,表达式T(v)将值v转换为类型TT:就是数据类型V:就是需要转换的变量一、数值类型转换数值间转换的时候建议从小范围转换成大范围,比如int8转int16,大范围转换成小范围的时候,比如int16转int8,会发......
  • 实验3 C语言函数应用编程
    1#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明......