当前位置:网站首页 > 技术博客 > 正文

c语言数据类型总结



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

//定义一个int类型变量,当变量值为0时表示false,值为1时表示true int 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还提供了一个头文件 <stdbool.h> 定义了 bool 代表 _Bool,true 代表 1,false 代表 0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了。

//导入 stdbool.h 来使用布尔类型 #include <stdbool.h> #include <stdio.h> //计算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, sum); return 0; }

版权声明


相关文章:

  • linux常用命令useradd2025-03-07 16:30:05
  • 小明爱看书2025-03-07 16:30:05
  • 程序员课程网站2025-03-07 16:30:05
  • 安卓设置textview内容2025-03-07 16:30:05
  • 移位指令有哪些2025-03-07 16:30:05
  • 网上jwsl是什么意思2025-03-07 16:30:05
  • c++运算符重载语法2025-03-07 16:30:05
  • 高并发三种解决方法2025-03-07 16:30:05
  • seekbar样式2025-03-07 16:30:05
  • qss qml2025-03-07 16:30:05