乐趣区

关于c:C4-布尔类型和引用

布尔类型

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;
}

输入后果:

布尔类型是 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);
}

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);
}

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

小结

bool 类型是 C ++ 新减少的根底类型
bool 类型的值只能是 true 和 false
C++ 中的三目运算符可作为左值应用
C++ 中的援用能够看作变量的别名应用
三目运算符的可能返回都是变量时,返回的是援用

退出移动版