C++学习笔记3——布尔类型和三目运算符

本文介绍了C++中的布尔类型,包括bool的基本概念、用途,如全局变量、常量、指针和数组的定义。同时,讨论了C++中三目运算符的特性,它不仅能返回变量值,还能作为左值使用,提供了更灵活的表达方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

布尔类型的概念

C++中的布尔类型

  • C++在C语言的基本类型系统上增加了bool

  • 布尔类型是C++中的基本数据类型

    • 可以定义布尔类型的全局变量

    • 可以定义布尔类型的常量

    • 可以定义布尔类型的指针

    • 可以定义布尔类型的数组

  • C++中的bool可取的值只有 truefalse

    • true代表真值, 编译器内部用 1 来表示

    • false代表非真值, 编译器内部用 0 来表示

    • C++编译器会将非0值转换为true0值转换为false

  • 理论上bool只占用一个字节

/*
    测试代码
*/

#include <stdio.h>

int main()
{
    bool b = false;
    int a = b;

    printf("sizeof(b) = %d\n", sizeof(b));       // 1
    printf("b = %d, a = %d\n", b, a);            // 00

    b = 3;
    a = b;

    printf("b = %d, a = %d\n", b, a);            // 11

    b = -5;
    a = b;

    printf("b = %d, a = %d\n", b, a);            // 11

    a = 10;
    b = a;

    printf("a = %d, b = %d\n", a, b);            // 101

    a = 0;
    b = a;

    printf("a = %d, b = %d\n", a, b);            // 00

    return 0;
}

运行结果

sizeof(b) = 1
b = 0, a = 0
b = 1, a = 1
b = 1, a = 1
a = 10, b = 1
a = 0, b = 0

三目运算符

  • C语言中, 三目运算符返回的是变量值不能作为左值使用

  • C++中的三目运算符可直接返回变量本身, 即可作为右值使用,又可作为左值使用

    • 当三目运算符的可能返回都是变量时, 返回的是变量引用, 可作为左值

    • 当三目运算符的可能返回中有常量时,返回的是值, 不能作为左值

int a = 1;
int b = 2;

(a < b ? a : b) = 3;      // ok, 返回 a 或 b 的引用,可作为左值
(a < b ? 1 : b) = 3;      // error, 返回 1 或 b 的值, 不能作为左值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值