一、布尔类型

C++中的布尔类型
C+在C语言的基本类型系统之上增加了bool
C++中的bool可取的值只有ture和false
理论上bool只占有一个字节
bool类型还有true(非0)和false(0)两个值
C++编译器将非零值转化为true,0值转换为false;

注意:

true代表真值,编译器内部用1来表示;
false代表非真值,编译器内部用0来表示;
示例代码:

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

运行结果:

b=0;
b=1;
b=1;

示例代码:

#include <stdio.h>
int main(int argc, char *argv[])

{

    bool b = false;
    int a = b;
    printf("sizeof(b) = %d\n",sizeof(b));  //1
    printf("b= %d,a= %d\n",b,a);    //0,0
    b = 3;
    a = b;
    printf("b= %d,a= %d\n",b,a);     //1,1
    b = -5;
    a = b;
    printf("b= %d,a= %d\n",b,a);     //1,1
    a = 10;
    b = a;
    printf("a= %d,b= %d\n",a,b);    //10,1   
    a = 0;
    b = a;
    printf("a= %d,b= %d\n",a,b);    //0,0
    return 0;
}

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

可以定义bool类型的全局变量、常量、指针、数组;

二、三目运算符

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

运行结果:
a=3,b=2

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

不能作为左值使用

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

即可作为右值使用,又可以作为左值使用

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

三、C++中的引用

变量名回顾

变量是一段实际连续存储空间的别名

程序中通过变量来申请并命名存储空间

通过变量的名字可以使用存储空间

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

引用可以看作一个已定义变量的别名

引用的语法:type&name = var;

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

#include <stdio.h>
int main(int argc, char *argv[])
{
    int a = 1;
    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);
}

运行结果:

a=5;
b=5;
&a = 0xbff64c9c;
&b = 0xbff64c9c;

小结:

bool类型是C++新增加的基础类型

bool类型的值只能是true和false

C++中的三目运算符可作为左值使用

C++中的引用可以看作变量的别名来使用

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


YingLi
6 声望4 粉丝

From zero to hero.