在 C 语言中,布尔值只有两个取值:true 和 false(也就是非 0 和 0)。判断布尔值的函数是 bool(),如果布尔值为 true,则输出 1,如果为 false,则输出 0。因此,我们可以使用%d格式控制符打印布尔值,即 %d。
在 C 语言中,%d 和 %i 都可以用来打印十进制数字。但是,它们之间是有一定区别的,具体来说,%d 会将数字转换为有符号的十进制整数进行输出,而%i 会先判断数字的符号,然后再进行输出。由于布尔值只有两种取值,因此我们可以使用%d格式控制符来打印布尔值。
另外,有时候在使用 printf() 函数的时候,%d 和 %i 可以互换使用,但是在 scanf() 函数中是不能互换使用的。因为 %i 会根据情况进行转换(比如输入的字符串中含有 0x 或者 0),而 %d 只会将字符串中的数字部分进行转换。
在 C 语言中,布尔值的字面量只有两个,即 true 和 false。在代码中,我们可以直接使用这两个字面量来代表真和假。当然,由于 C 语言中 0 代表 false,而非 0 代表 true,因此我们在代码中也可以使用 0 和 1 来表示布尔值。这在实际应用中是很常见的。
在 C 语言中,结构体是一种由用户自定义的数据类型,可以包含不同类型的变量,包括布尔类型。在结构体中使用布尔类型的时候,我们需要使用 _Bool 或者 bool 关键字来定义该变量。_Bool 类型只能表示真假两种取值,因此在定义布尔类型的时候推荐使用 bool 关键字。
示例代码:
typedef struct {
char name[20];
_Bool is_male;
} Person;
int main() {
Person person1 = {"Tom", true};
Person person2 = {"Lisa", false};
printf("%s is %s\n", person1.name, person1.is_male ? "male" : "female");
printf("%s is %s\n", person2.name, person2.is_male ? "male" : "female");
return 0;