1、布尔类型

C++中的布尔类型

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

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

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

注意:

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

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

C语言中:

用整型值来代替bool类型,常用0:flase, 1:true

C++做了类型增强,增加了一个非常严谨的bool类型,truefalse作为关键字存在。

在C++的布尔类型中,bool类型只有truefalse两个值,C++编译器会将非0值转换为true, 0值转换为false

bool b = 0;printf("b = %d\n", b);b++;printf("b = %d\n", b);b = b - 3;printf("b = %d\n", b);// bool类型是否支持数学运算?
其实在C++语言中,布尔类型的内部实现是用一个字节的整型来实现的,bool类型支持数学运算,编译器会在内部进行调整,非0为true,0 为 false

代码试验:

#include <stdio.h>int main(int argc, char *argv[]){    bool b = false;    int a = b;        printf("sizeof(b) = %d\n", sizeof(b));    // sizeof(b) = 1, bool类型占一个字节    printf("b = %d, a = %d\n", b, a);    0    // b = 0, a = 0        b = 3;    // b = 1    a = b;  // a = 1        printf("b = %d, a = %d\n", b, a);        b = -5;    // b = 1    a = b;  // a = 1        printf("b = %d, a = %d\n", b, a);        a = 10; // a = 10    b = a;  // b = 1        printf("a = %d, b = %d\n", a, b);        a = 0;    // a = 0    b = a;  // b = 0        printf("a = %d, b = %d\n", a, b);        return 0;}

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

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

  • 可以定义bool类型的常量

  • 可以定义bool类型的指针

  • 可以定义bool类型的数组

    ......

2、三目运算符

C++中对三目运算符进行了升级

考虑下列代码是否正确,分别在C语言和C++环境中编译运行试验

int a = 1;int b =2;(a < b ? a : b) = 3;printf("a = %d, b = %d\n", a, b);// 在C语言中报错// 在C++中,结果a = 3

三目运算符

  • C语言中的三目运算符返回的是变量值

    • 不能作为左值使用

  • C++中的三目运算符可以直接返回变量本身

    • 既可以作为右值使用,又可以作为左值使用

注意:

三目运算符可能返回的值中如果有一个是常量值,则不能作为左值使用

三目运算符只有在所有的可能返回都是变量的时候才能作为左值使用,一个常量一个变量就不能作为左值使用

C++对三目运算符进行了这样的升级,意义何在?

三目运算符所有的可能返回都是变量的时候,返回的就是变量本身,由此引出了新概念:引用

3、引用

3.1 变量名

变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间。

问题:一段连续的存储空间只能有一个别名吗?
1.png

3.2 引用

C++中的引用

  • 在C++中增加了引用的概念

    int a = 4;int& b = a;     // b作为a的别名b = 5;        // 操作b就是操作a
    • 引用可以看作一个已定义变量的别名

    • 引用的语法:Type& name = var;

注意:

普通引用在定义时必须用同类型的变量进行初始化。

  • C++对三目运算符做了些啥?

    int a = 1;int b = 2;(a < b ? a : b) = 3;    // ok,返回a或b的引用,可作为左值(a < b ? 1 : b) = 4;    // err,返回1或b的值,不能作为左值
    • 当三目运算符的可能返回都是变量时,返回的是变量引用

    • 当三目运算符的可能返回中有常量时,返回的是

4、小结

bool类型是C++新增加的基础类型

bool类型的值只能是truefalse

C++中的三目运算符可作为左值使用

C++中的引用可以看作变量的别名来使用

三目运算符的可能返回都是变量时,返回的是引用

相关文章:

php boolean(布尔)类型的用法举例

PHP布尔型数据类型 false true 用法介绍

更多相关文章

  1. 第二章C++:变量和基本类型
  2. C#如何使用Reflect获取dll文件中的类型并调用?
  3. c语言怎么显示输出变量的值
  4. C#中的数据类型是什么?C#中的四种数据类型解释
  5. c语言简单数据类型有哪些
  6. 什么是变量的作用域
  7. 【C语言】5种妙招教你轻松搞定变量值交换
  8. c语言属于什么类型的编程语言
  9. 静态变量和动态变量

随机推荐

  1. PHP常见数组排序方法小汇总
  2. php实现断点续传大文件
  3. 数组转json后的结果是数组还是对象? (踩坑
  4. 中文分词 PHP 扩展 SCWS 安装方法
  5. 关于PHP循环读取json数据的方法
  6. 详解PHP面向对象之后期静态绑定
  7. 速看!php artisan 命令列表
  8. 或许你想去掉Response Headers中的X-Powe
  9. 关于PHP CURL上传二进制流图片
  10. 关于php preg_replace_callback回调函数