布尔类型和三目运算符

Posted ryluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了布尔类型和三目运算符相关的知识,希望对你有一定的参考价值。

介绍

C语言中没有具体的bool类型,在C中使用int 型的0和1来代表true和false,但是在C++中对C的布尔类型有了一个增强,增加了一种bool类型,其值为true和false,并且理论上在内存中只占用一个字节,但是C++的编译器在编译到true和false的时候也是用0和1分别代表false和true的

bool类型的计算

  • Bool类型的true(非0),false(0)
  • bool a = 0;

    printf("a = %d ",a); //0

    a++;

    printf("a = %d ",a); //1

    a = a-3;

    printf("a = %d ",a); //1

    system("pause");

  • Bool 类型在参加数值运算的时候,和整数运算是一样的,不过得到的结果,编译器会根据true和false的定义来将计算的结果进行整理。将其值编程0或者1
  • Bool类型是C++ 中的基本数据类型,可以定义bool的全局变量、常量、指针、数组等
  • 三目运算符:(C++对三面运算符进行了升级)

    下面的代码真确吗?

    int a = 1;

    int b = 2;

    (a < b ? a : b) = 3;

    printf("a = %d, b = %d ", a, b);

    • C语言中三目运算符返回的是一个变量值,不能作为左值使用
    • C++中三目运算符可直接返回变量本身,既可作为左值又可作为右值()
    • 注意:三目运算符中所有可能返回的变量中,有一个是常量,就不能作为左值使用

    C++中的引用

    1. 引用可认为是一个已经定定义的变量的一个别名
    2. 引用的语法:type& name = val;

    int a = 1;

    int& b = a;

    printf("b = %d,a = %d ",b,a);

    printf("&b= %p ",&b);

    printf("&a= %p ",&a);

    变量名的回顾

    1. 变量是一段实际连续存储空间的别名
    2. 程序中通过变量来申请并命名存储空间
    3. 通过变量的名字可以使用内存空间
    4. C++中的变量可以有别名(就是引用)

    小结

    • bool类型是C++新增加的基础类型
    • bool类型值只能是true和false
    • C++中的三目运算符可作为左值使用
    • C++中的引用可以看作变量的别名来使用
    • 三目运算符的可能返回值都是变量时,返回的是引用

    以上是关于布尔类型和三目运算符的主要内容,如果未能解决你的问题,请参考以下文章

    else 的特殊用法和三目运算

    关于java 三目运算符

    条件语句和三目运算符的区别

    if 判断 和三目运算符 和函数

    if-else和三目运算符 ? : 的对比

    python自动化测试之函数(匿名函数lambda和三目运算等(高级用法))