C++ 布尔类型和引用的用法详解
时间:2018-08-06 09:17
C++中的布尔类型 C++在C语言的基本类型系统之上增加了 C++中的 理论上 注意: C语言中: 用整型值来代替 C++做了类型增强,增加了一个非常严谨的 在C++的布尔类型中, 代码试验: 布尔类型是C++中的基本数据类型 可以定义 可以定义 可以定义 可以定义 ...... C++中对三目运算符进行了升级 考虑下列代码是否正确,分别在C语言和C++环境中编译运行试验 三目运算符 C语言中的三目运算符返回的是变量值 不能作为左值使用 C++中的三目运算符可以直接返回变量本身 既可以作为右值使用,又可以作为左值使用 注意: 三目运算符可能返回的值中如果有一个是常量值,则不能作为左值使用 三目运算符只有在所有的可能返回都是变量的时候才能作为左值使用,一个常量一个变量就不能作为左值使用 C++对三目运算符进行了这样的升级,意义何在? 三目运算符所有的可能返回都是变量的时候,返回的就是变量本身,由此引出了新概念:引用 变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间。 问题:一段连续的存储空间只能有一个别名吗? C++中的引用 在C++中增加了引用的概念 引用可以看作一个已定义变量的别名 引用的语法: 注意: 普通引用在定义时必须用同类型的变量进行初始化。 C++对三目运算符做了些啥? 当三目运算符的可能返回都是变量时,返回的是变量引用 当三目运算符的可能返回中有常量时,返回的是值 C++中的三目运算符可作为左值使用 C++中的引用可以看作变量的别名来使用 三目运算符的可能返回都是变量时,返回的是引用 相关文章: php boolean(布尔)类型的用法举例 PHP布尔型数据类型 false true 用法介绍 以上就是C++ 布尔类型和引用的用法详解的详细内容,更多请关注gxlsystem.com其它相关文章!1、布尔类型
bool
bool
可取的值只有true
和false
bool
之占用一个字节true
代表真值,编译器内部用1来表示false
代表非真值, 编译器内部用0来表示bool
类型,常用0:flase, 1:true
bool
类型,true
和false
作为关键字存在。bool
类型只有true
和false
两个值,C++编译器会将非0值转换为true
, 0值转换为false
。bool b = 0;
printf("b = %d\n", b);
b++;
printf("b = %d\n", b);
b = b - 3;
printf("b = %d\n", b);
// bool类型是否支持数学运算?
其实在C++语言中,布尔类型的内部实现是用一个字节的整型来实现的,
bool
类型支持数学运算,编译器会在内部进行调整,非0为true,0 为 false#include <stdio.h>
int main(int argc, char *argv[])
{
bool b = false;
int a = b;
printf("sizeof(b) = %d\n", sizeof(b));
// sizeof(b) = 1, bool类型占一个字节
printf("b = %d, a = %d\n", b, a); 0
// b = 0, a = 0
b = 3; // b = 1
a = b; // a = 1
printf("b = %d, a = %d\n", b, a);
b = -5; // b = 1
a = b; // a = 1
printf("b = %d, a = %d\n", b, a);
a = 10; // a = 10
b = a; // b = 1
printf("a = %d, b = %d\n", a, b);
a = 0; // a = 0
b = a; // b = 0
printf("a = %d, b = %d\n", a, b);
return 0;
}
bool
类型的全局变量bool
类型的常量bool
类型的指针bool
类型的数组2、三目运算符
int a = 1;
int b =2;
(a < b ? a : b) = 3;
printf("a = %d, b = %d\n", a, b);
// 在C语言中报错
// 在C++中,结果a = 3
3、引用
3.1 变量名
3.2 引用
int a = 4;
int& b = a; // b作为a的别名
b = 5; // 操作b就是操作a
Type& name = var;
int a = 1;
int b = 2;
(a < b ? a : b) = 3; // ok,返回a或b的引用,可作为左值
(a < b ? 1 : b) = 4; // err,返回1或b的值,不能作为左值
4、小结
bool
类型是C++新增加的基础类型bool
类型的值只能是true
和false