C++의 부울 유형
C++은 C 언어의 기본 유형 시스템 위에 C++의
bool
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
类型的数组......
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++对三目运算符进行了这样的升级,意义何在?
三目运算符所有的可能返回都是变量的时候,返回的就是变量本身,由此引出了新概念:引用
变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间。
问题:一段连续的存储空间只能有一个别名吗?
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
이론적으로
을 추가합니다. bool
에 가능한 값은true
및false
bool
은 1바이트를 차지합니다참고:
true
는 참 값을 나타내고, 컴파일러는 이를 나타내기 위해 내부적으로 1을 사용합니다.
false
는 참이 아닌 값을 나타냅니다. 0은 내부적으로 1을 사용합니다. C 언어에서는정수 값을 사용하여
C++에서는 유형 향상이 이루어졌으며 매우 엄격한bool
유형을 대체하며 일반적으로 사용되는0:flase, 1:true
bool
유형이 추가되었으며true
및false
가 키워드로 존재합니다. 🎜🎜C++의 부울 유형에서bool
유형에는true
및false
의 두 가지 값만 있습니다. C++ 컴파일러는 0이 아닌 값을 변환합니다. 값을true
로, 0 값을false
로 변환합니다. 🎜rrreee🎜실제로 C++ 언어에서는 Boolean 유형의 내부 구현이 1바이트 정수로 구현됩니다.bool
유형은 수학 연산을 지원하며 컴파일러는 이를 내부적으로 조정합니다. -0은 true, 0은 false🎜🎜코드 테스트: 🎜rrreee🎜🎜Boolean 유형은 C++의 기본 데이터 유형입니다🎜🎜🎜🎜bool
유형의 전역 변수를 정의할 수 있습니다🎜 🎜🎜 정의 가능bool
🎜🎜🎜 유형의 상수bool
🎜🎜🎜 유형의 포인터 정의 가능유형 정의 가능 bool
Array🎜🎜......🎜🎜🎜2. 삼항 연산자🎜🎜C++에서 삼항 연산자가 업그레이드되었습니다🎜🎜다음 코드가 각각 올바른지 확인하세요. C 언어에서 C++ 환경에서 테스트를 컴파일하고 실행합니다🎜rrreee🎜🎜삼항 연산자🎜🎜🎜🎜C 언어의 삼항 연산자는 변수 값을 반환합니다🎜🎜🎜는 lvalue로 사용할 수 없습니다🎜
🎜🎜C++의 삼항 연산자는 변수 자체를 직접 반환할 수 있습니다🎜🎜🎜rvalue와 lvalue 모두로 사용할 수 있습니다🎜
🎜참고:🎜🎜 삼항 연산자가 반환할 수 있는 값 중 하나가 상수이면 lvalue로 사용할 수 없습니다🎜🎜삼항 연산자는 가능한 모든 반환이 변수인 경우에만 lvalue로 사용할 수 있습니다. 상수 A 변수는 사용할 수 없습니다. lvalue로 사용됨🎜🎜🎜C++에서는 이러한 방식으로 삼항 연산자를 업그레이드했습니다. 🎜🎜삼항 연산자의 가능한 모든 반환이 변수인 경우 반환은 변수 자체입니다. 이는 새로운 개념으로 이어집니다. 참조 🎜🎜3, 참조 🎜3.1 변수 이름🎜변수는 실제 연속적인 저장 공간에 대한 별칭입니다. 프로그램에서 저장 공간은 변수 이름을 통해 적용되고 명명됩니다. 🎜🎜질문: 연속 저장 공간에는 별칭이 하나만 있을 수 있나요?
🎜 3.2 참조
🎜🎜C++의 참조🎜🎜🎜🎜C++의 참조 개념 추가🎜rrreee🎜🎜참조는 정의된 변수의 별칭으로 간주할 수 있습니다🎜🎜🎜참조 구문:
🎜참고: 🎜🎜일반 참조는 정의 시 동일한 유형의 변수로 초기화되어야 합니다. 🎜🎜🎜🎜C++에서는 삼항 연산자로 무엇을 하나요? 🎜rrreeeType& name = var;
🎜 ul>🎜🎜삼항 연산자의 가능한 반환이 모두 변수인 경우 반환되는 내용은변수 참조🎜🎜🎜삼항 연산자의 가능한 반환값에 상수가 있는 경우 반환되는 값은 값🎜
입니다. ul >🎜🎜4. 요약🎜🎜bool
유형은 C++에 새로 추가된 기본 유형입니다.🎜bool
유형의 값은true만 가능합니다.
및false
🎜🎜C++의 삼항 연산자는 lvalue로 사용될 수 있습니다.🎜🎜C++의 참조는 변수의 별칭으로 사용될 수 있습니다.🎜🎜삼항 연산자의 가능한 반환값이 모두 다음과 같은 경우 변수, 반환된 내용은 🎜🎜🎜관련글 참고입니다: 🎜🎜🎜php boolean(Boolean)형 사용예🎜🎜🎜🎜PHP Boolean 데이터형 false true 사용법 소개🎜🎜위 내용은 C++ 부울 유형 및 참조 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!