布尔类型

C++中的布尔类型

C++在C语言的基本类型系统之上增加了bool
C++中的bool可取得值true和false
理论上bool只占用一个字节
bool类型只有true和false两个值

#include "stdio.h"
int main(int argc,char *argv[])
{
    bool b = 0;
    printf("b=%d\n",b);
    b++;    
    printf("b=%d\n",b);
    b=b-3;
    printf("b=%d\n",b);
    return 0;
}

输出结果:
0
1
1

#include "stdio.h"
int main(int argc,char *argv[])
{
   bool b= false;
   int a = b;
   printf("sizeof(b) = %d\n",sizeof(b));
   printf("b=%d,a=%d\n",b,a);
   b = 3;
   a = b;
   printf("b=%d,a=%d\n",b,a);
   b = -5;
   a = b;
   printf("b=%d,a=%d\n",b,a);
   a = 10;
   b = a;
   printf("a=%d,b=%d\n",a,b);
   a = 0;
   b = a;
   printf("a=%d,b=%d\n",a,b);
   return 0;
}

输出结果:
image.png

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

可以定义bool类型的全局变量
可以定义bool类型的常量
可以定义bool类型的指针
可以定义bool类型的数组
C++对三目运算符进行了升级

三目运算符

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

不能作为左值使用

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

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

#include "stdio.h"

int main(int argc,char *argv[])
{
  int a = 1;
  int b = 2;
  (a<b?a:b) = 3;
  printf("a = %d,b = %d\n",a,b);
}

image.png

C++中的引用

变量名的回顾

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

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

引用可以看作是一个已定义变量的别名
引用的语法:type& name = var;
注意:
普通引用再定义时必须用同类型的变量进行初始化。

#include "stdio.h"

int main(int argc,char *argv[])
{
  int a = 4;
  int &b = a;
  b = 5;
  printf("a = %d\n",a);
  printf("b = %d\n",b);
  printf("&a = %p\n",&a);
  printf("&b = %p\n",&b);
}

image.png
C++三目运算符
当三目运算符的可能返回都是变量时,返回的是变量引用
当三目运算符的可能返回中有常量时,返回的是值
image.png

小结

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


YingLi
6 声望4 粉丝

From zero to hero.