前言:
今天咱们对“c语言的布尔类型是什么”大体比较关怀,同学们都需要剖析一些“c语言的布尔类型是什么”的相关知识。那么小编也在网摘上汇集了一些关于“c语言的布尔类型是什么””的相关资讯,希望朋友们能喜欢,同学们快快来了解一下吧!一、布尔类型
在 C99 标准之前,C语言并没有布尔类型,所以 C语言判断真假时以 0 为假,非 0 为真:
#include <stdio.h>int main(){ /* 定义一个 int 类型变量, 0 为 false,非 0 为 true。 */ int flag = 1; if (flag) { printf("flag = true\n"); } flag = 0; if (!flag) { printf("flag = false\n"); } return 0;}
而 _Bool 类型是 C99 新增加的一种类型,但 _Bool 的本质依然仍是整数类型,但与一般整型不同的是,_Bool 变量只能赋值为 0 或 1,非 0 的值都会被存储为 1。
#include <stdio.h>int main(){ _Bool flag = 0; printf("flag = %d\n", flag); // 0 flag = 1; printf("flag = %d\n", flag); // 1 flag = 8; printf("flag = %d\n", flag); // 1 return 0;}
C99 还提供了一个头文件 <stdbool.h> 定义了 bool 代表 _Bool,true 代表 1,false 代表 0。
#include <stdio.h>#include <stdbool.h>int main(){ bool flag = true; if (flag) { printf("flag = %d\n", flag); } flag = false; if (!flag) { printf("flag = %d\n", flag); } return 0;}二、枚举类型
枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。
定义一个枚举类型,需要使用 enum 关键字,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一组枚举常量。每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增。
enum 枚举名 {枚举元素1, 枚举元素2, ……};
1. 枚举定义
// 默认常量的值从 0 开始递增// MON=0, TUE=1, WED=2, THU=3, FRI=4enum DAY { MON, TUE, WED, THU, FRI};// 为常量指定值,后面没指定的常量都在前面的基础上加 1// MON=1, TUE=2, WED=3, THU=4, FRI=5enum DAY { MON=1, TUE, WED, THU, FRI};// 为常量指定值,前面没指定的常量从 0 开始递增// MON=0, TUE=1, WED=5, THU=6, FRI=7enum DAY { MON, TUE, WED=5, THU, FRI};
2. 枚举变量定义
// 先定义枚举类型,再定义枚举变量enum DAY { MON=1, TUE, WED, THU, FRI};enum DAY day;// 定义枚举类型的同时定义枚举变量enum DAY { MON=1, TUE, WED, THU, FRI} day;// 省略枚举名称,直接定义枚举变量enum { MON=1, TUE, WED, THU, FRI} day;
3. 枚举变量赋值与使用
#include <stdio.h>enum WeekDay {MON, TUE, WED, THU, FIR};enum Month { FEB=2, MAR, APR, MAY} mon;int main(){ /* 枚举变量赋值 */ enum WeekDay today = MON; printf("today is %d\n", today); // 0 /* 如果枚举内元素的数值是连续的,则可以遍历该枚举 */ for(mon=FEB; mon<=MAY; mon++) { // 2 3 4 5 printf("Month is %d\n", mon); } enum {RED, GREEN=5, BLUE} color; color = RED; printf("color = %d\n", color); // 0 color = BLUE; printf("color = %d\n", color); // 6 /* 枚举中常量也可以是 char,char的本质也是整数 */ enum {A='a', B='b'} flag; flag = A; printf("flag = %c\n", flag); // a return 0;}
标签: #c语言的布尔类型是什么