>백엔드 개발 >C#.Net 튜토리얼 >C++ 부울 유형 및 참조 사용법에 대한 자세한 설명

C++ 부울 유형 및 참조 사용법에 대한 자세한 설명

php是最好的语言
php是最好的语言원래의
2018-08-06 09:17:214073검색

1. 부울 유형

C++의 부울 유형

  • C++은 C 언어의 기본 유형 시스템 위에 C++의 boolbool

  • C++中的bool可取的值只有truefalse

  • 理论上bool之占用一个字节

注意:

true代表真值,编译器内部用1来表示

false代表非真值, 编译器内部用0来表示

C语言中:

用整型值来代替bool类型,常用0:flase, 1:true

C++做了类型增强,增加了一个非常严谨的bool类型,truefalse作为关键字存在。

在C++的布尔类型中,bool类型只有truefalse两个值,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 变量名

变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间。

问题:一段连续的存储空间只能有一个别名吗?
C++ 부울 유형 및 참조 사용법에 대한 자세한 설명

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 
    • 当三目运算符的可能返回都是变量时,返回的是变量引用

    • 当三目运算符的可能返回中有常量时,返回的是

4、小结

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

bool类型的值只能是truefalse

을 추가합니다. bool에 가능한 값은 truefalse

이론적으로 bool은 1바이트를 차지합니다

참고:

true는 참 값을 나타내고, 컴파일러는 이를 나타내기 위해 내부적으로 1을 사용합니다.

false는 참이 아닌 값을 나타냅니다. 0은 내부적으로 1을 사용합니다. C 언어에서는

정수 값을 사용하여 bool 유형을 대체하며 일반적으로 사용되는 0:flase, 1:true

C++에서는 유형 향상이 이루어졌으며 매우 엄격한 bool 유형이 추가되었으며 truefalse가 키워드로 존재합니다. 🎜🎜C++의 부울 유형에서 bool 유형에는 truefalse의 두 가지 값만 있습니다. 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
    🎜🎜참조는 정의된 변수의 별칭으로 간주할 수 있습니다🎜🎜🎜참조 구문: Type& name = var;🎜 ul>
🎜참고: 🎜🎜일반 참조는 정의 시 동일한 유형의 변수로 초기화되어야 합니다. 🎜🎜🎜🎜C++에서는 삼항 연산자로 무엇을 하나요? 🎜rrreee
    🎜🎜삼항 연산자의 가능한 반환이 모두 변수인 경우 반환되는 내용은변수 참조🎜🎜🎜삼항 연산자의 가능한 반환값에 상수가 있는 경우 반환되는 값은 🎜
입니다. ul >🎜🎜4. 요약🎜🎜 bool 유형은 C++에 새로 추가된 기본 유형입니다.🎜bool 유형의 값은 true만 가능합니다. false🎜🎜C++의 삼항 연산자는 lvalue로 사용될 수 있습니다.🎜🎜C++의 참조는 변수의 별칭으로 사용될 수 있습니다.🎜🎜삼항 연산자의 가능한 반환값이 모두 다음과 같은 경우 변수, 반환된 내용은 🎜🎜🎜관련글 참고입니다: 🎜🎜🎜php boolean(Boolean)형 사용예🎜🎜🎜🎜PHP Boolean 데이터형 false true 사용법 소개🎜🎜

위 내용은 C++ 부울 유형 및 참조 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.