前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++之布尔类型和类型

C++之布尔类型和类型

作者头像
程序手艺人
发布2018-05-18 15:35:04
1K0
发布2018-05-18 15:35:04
举报
文章被收录于专栏:程序手艺人

布尔类型

  • C++中的布尔类型
    • C++在C语言的基本类型系统之上增加了bool
    • C++中的bool可取的值只有true 和 false
    • 理论上bool只占用一个字节
  • 布尔类型是C++中的基本数据类型
    • 可以定义bool类型的全局变量
    • 可以定义bool类型的常量
    • 可以定义bool类型的指针
    • 可以定义bool类型的数组

三目运算符

  • C++对三目运算符进行了升级
    • 下面的代码正确吗?
代码语言:javascript
复制
#include <stdio.h>
int main() {

    int a = 1;
    int b = 2;
    (a < b ? a : b) = 3;

    printf("a=%d, b = %d\n", a, b);
}
  • C语言编译:
代码语言:javascript
复制
t4-1.c: In function ‘main’:
t4-1.c:6:21: error: lvalue required as left operand of assignment
     (a < b ? a : b) = 3;
  • C++编译:
代码语言:javascript
复制
正常运行: a=3, b = 2
原因分析
  • C语言中的三目运算符返回的是变量值
    • 不能作为左值使用
  • C++中的三目运算符可直接返回变量本身
    • 既可作为右值使用,又可作为左值使用

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

C++中的引用

  • 在C++中新增加了引用的概念
    • 引用可以看作一个已定义变量的别名
    • 引用的语法: Type& name = var;
代码语言:javascript
复制
int a = 4;
int& b = a;   //b为a的别名
b = 5;         //操作b就是操作a 

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

  • C++对三目运算做了什么?
    • 当三目运算符的可能返回都是变量时,返回的是变量的引用
    • 当三目运算符的可能返回中有常量时,返回的是值
代码语言:javascript
复制
int a = 1;
int b = 2;
(a < b ? a : b ) = 3 ; // 正确, 返回a或b的引用,可作为左值
(a < b ? 1 : b ) = 4; // 错误,返回1或b的值,不能作为左值

小结

  • bool 类型是C++新增加的基本类型
  • bool 类型的值只能是true和false
  • C++中的三目运算符可作为左值使用
  • C++中的引用可以看做变量的别名来使用
  • 三目运算符的可能返回都是变量时,返回的是引用
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年03月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 布尔类型
  • 三目运算符
    • 原因分析
    • C++中的引用
    • 小结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档