1、布尔范例
C++中的布尔范例
C++在C言语的基本范例体系之上增添了
bool
C++中的
bool
可取的值只要true
和false
理论上
bool
之占用一个字节注重:
true
代表真值,编译器内部用1来示意
false
代表非真值, 编译器内部用0来示意C言语中:
用整型值来替代
bool
范例,经常运用0:flase, 1:true
C++做了范例加强,增添了一个异常严谨的bool
范例,true
和false
作为关键字存在。
在C++的布尔范例中,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; }
布尔范例是C++中的基本数据范例
能够定义
bool
范例的全局变量能够定义
bool
范例的常量能够定义
bool
范例的指针能够定义
bool
范例的数组......
2、三目运算符
C++中对三目运算符举行了升级
斟酌以下代码是不是准确,分别在C言语和C++环境中编译运转实验
int a = 1; int b =2; (a < b ? a : b) = 3; printf("a = %d, b = %d\n", a, b); // 在C言语中报错 // 在C++中,效果a = 3
三目运算符
C言语中的三目运算符返回的是变量值
不能作为左值运用
C++中的三目运算符能够直接返回变量自身
既能够作为右值运用,又能够作为左值运用
注重:
三目运算符能够返回的值中如果有一个是常量值,则不能作为左值运用
三目运算符只要在一切的能够返回都是变量的时刻才作为左值运用,一个常量一个变量就不能作为左值运用
C++对三目运算符举行了如许的升级,意义安在?
三目运算符一切的能够返回都是变量的时刻,返回的就是变量自身,由此引出了新观点:援用
3、援用
3.1 变量名
变量是一段现实一连存储空间的别号,顺序中经由过程变量来请求并定名存储空间,经由过程变量的名字能够运用存储空间。
3.2 援用
C++中的援用
在C++中增添了援用的观点
int a = 4; int& b = a; // b作为a的别号 b = 5; // 操纵b就是操纵a
援用能够看做一个已定义变量的别号
援用的语法:
Type& name = var;
注重:
一般援用在定义时必须用同范例的变量举行初始化。
C++对三目运算符做了些啥?
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
C++中的三目运算符可作为左值运用
C++中的援用能够看做变量的别号来运用
三目运算符的能够返回都是变量时,返回的是援用
相干文章:
php boolean(布尔)范例的用法举例
PHP布尔型数据范例 false true 用法引见
以上就是C++ 布尔范例和援用的用法详解的细致内容,更多请关注ki4网别的相干文章!