C++小白到大白养成记 - 养成记4:布尔类型和引用

--事物的难度远远低于对事物的恐惧!   

    我们知道,C语言中是没有bool类型的,但是C++在C语言的基本类型系统之上增加了bool类型,并且C++中的bool可取的值只有true和false,bool类型理论上只占用一个字节
    -true代表真值,编译器内部用1来表示
    -false代表非真,编译器内部用0来表示

    -C++编译器会将非0值转化为true,0值转化为false

我们来回顾一下变量:
    -变量 是一段实际连续存储空间的别名
    -程序中通过变量来申请并命名存储空间
    -通过变量的名字可以使用存储空间

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

C++中新增加了引用的概念
    -引用可以看做一个已定义变量的别名
    -引用的语法:Type& name = var;
    -普通引用在定义时必须用同类型的变量进行初始化

#include <iostream>

using namespace std;

int main(int argc, char const *argv[])
{
    int a = 4;
    int &b = a; //b为a的别名

    cout << "a = " << a << ";  b = " << b << endl;

    b = 5; //此时操作b就是操作a
    
    cout << "a = " << a << ";  b = " << b << endl;

    return 0;
}
编译输出 为:

在C++中,三目运算符有如下两个特性:
    -当三目运算符的可能返回都是变量时,返回的是变量引用

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

下边的代码可以解释如上特性

int a = 1;
int b = 2;

(a<b ? a : b) = 3;  //正确,返回a或者b的引用,可以作为左值
(a<b ? 1 : b) = 3;  //错误,返回1或者b的值,不能作为左值
总结:
    -bool类型 是C++新增加的基础类型

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


猜你喜欢

转载自blog.csdn.net/lms1008611/article/details/80552629
今日推荐