快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

C++布尔类型和引用的用法案例-创新互联

小编给大家分享一下C++ 布尔类型和引用的用法案例,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

在建安等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、成都网站制作 网站设计制作按需网站设计,公司网站建设,企业网站建设,品牌网站设计,营销型网站建设,外贸网站建设,建安网站建设费用合理。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 

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 变量名

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

问题:一段连续的存储空间只能有一个别名吗?
C++ 布尔类型和引用的用法案例

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++中的引用可以看作变量的别名来使用

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

看完了这篇文章,相信你对C++ 布尔类型和引用的用法案例有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前标题:C++布尔类型和引用的用法案例-创新互联
标题路径:http://6mz.cn/article/dhdosc.html

其他资讯