C++深度解析(3)—布尔类型和引用

本文详细介绍了C++中的布尔类型,包括其取值和转换规则。同时,探讨了C++中三目运算符的特性和使用注意事项。接着,详细阐述了C++引用的概念,对比了引用与指针的区别,强调了引用作为变量别名的特性以及const引用的作用。文章还解答了引用与指针的关系,并指出引用在编译器内部是通过指针常量实现的。最后,举例说明了C++不支持引用数组这一限制。
摘要由CSDN通过智能技术生成

1.布尔类型

1.1 布尔类型

  • C++中的布尔类型
  • C++在C语言的基本类型系统之上增加了bool
  • C++中的bool可取的值只有true和false
  • 理论上bool只占用一个字节
    •  true代表真值,编译器内部用1来表示
    •  false代表非真值,编译器内部用0来表示

1.2 布尔类型的值

  • bool类型只有true(非0)和false(0)两个值
  • C++编译器会将非0值转换为true,0值转换为false 
#include <stdio.h>

int main(int argc, char *argv[])
{
    int a;
    bool b = true;
    
    printf("b = %d, sizeof(b) = %d\n", b, sizeof(b));
    
    b = 3;
    a = b;
    
    printf("a = %d, b = %d\n", a, b);
    
    b = -5;
    a = b;
    
    printf("a = %d, b = %d\n", a, b);
    
    a = 10;
    b = a;
    
    printf("a = %d, b = %d\n", a, b);
    
    b = 0;
    
    printf("b = %d\n", b);
    
    printf("Press enter to continue ...");
    
    getchar();	
    
    return 0;
}
  • 运行结果

1.3 布尔类型

  • 布尔类型是C++中的基本数据类型
  •  可以定义bool类型的全局变量
  • 可以定义bool类型的常量
  • 可以定义bool类型的指针
  • 可以定义bool类型的数组

2.三目运算符

  • C++对三目运算符进行了升级
  • 下面的代码正确吗?
int a = 1;  
int b = 2;  
  
(a < b ? a : b) = 3;  
  
printf("a = %d,b = %d\n", a, b);  
  • gcc编译不通过,g++编译通过

  • 当改为:(a < b ? a : 2)= 3时,g++也编译不通过

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值