>  기사  >  백엔드 개발  >  4장 C++: 표현식 개념 - 연산자 적용

4장 C++: 표현식 개념 - 연산자 적용

php是最好的语言
php是最好的语言원래의
2018-08-06 10:40:081807검색

언어 자체에서 정의하고 내장형 피연산자에 사용되는 연산자를 소개하고, 표준 라이브러리에서 정의하는 여러 연산자를 간략하게 소개합니다.

제4장 표현식

기본 개념

  • 단항 연산자: 하나의 피연산자에 작용하는 연산자

  • 이진 연산자: 두 개의 피연산자에 작용하는 연산자

  • 함수 호출도 특별합니다 피연산자 수에 제한이 없는 연산자

  • Lvalue: 객체가 lvalue로 사용될 때 객체의 ID(메모리 내 위치)가 사용됩니다.

  • Rvalue: 객체를 rvalue로 사용하는 경우 객체의 값(내용)이 사용됩니다.

평가 순서

  • 대부분의 경우 평가 순서는 명시적으로 지정되지 않습니다. 작동 가능한 객체의 평가 순서를 명확하게 지정하는 연산자는 4개뿐입니다.

    1. 逻辑与运算符(&&):先求左侧才求右侧,只有当左侧为真时才计算右侧的值2. 逻辑或运算符(||)3. 条件运算符(?:)4. 逗号运算符(,)

산술 연산자

bool b = true;bool b2 = -b;   //b2是true。-1不等于0,所以b2的值为真
  • C++11에서는 몫이 항상 0으로 반올림되도록 규정합니다(즉, 소수 부분은 잘립니다. 곧장).

  • m%n이 0이 아닌 경우 해당 부호는 m과 같습니다.

    (-m)/n 和 m/(-n) 都等于 -(m/n)
    m%(-n) 等于 m%n(-m)%n 等于 -(m%n)

논리 및 관계 연산자

관계 연산자는 산술 또는 포인터 유형에 대해 작동하고 논리 연산자는 부울 값 유형.
- 반환 값은 모두 부울 유형입니다.

Logical AND &&, Logical OR||

  • 단락 평가

관계 연산자

관계 연산자의 평가 결과는 부울 값이며 함께 사용할 수 있습니다. 예상치 못한 결과가 발생합니다:

if(i < j < k)   //若k大于1则为真

는 다음과 같이 변경되어야 합니다.

if(i < j && j < k)

할당 연산자

  • 할당 연산자 왼쪽 피연산자는 수정 가능한 lvalue여야 합니다.

  • 대입 연산자의 왼쪽과 오른쪽 피연산자의 유형이 다른 경우 오른쪽 피연산자는 왼쪽 피연산자의 유형으로 변환됩니다.

대입 연산은 오른쪽 결합법칙을 만족합니다.

int i, j;
i = j = 0;  //正确,都被赋值为0

조건 연산자 ?:

cond ? expr1 : expr2

는 오른쪽 결합법칙을 만족하며 피연산자는 일반적으로 오른쪽에서 왼쪽 순서로 결합됩니다.

비트 연산자

정수 유형의 피연산자 및 비트 세트라는 표준 라이브러리 유형에 대해 작동합니다.

~   :位求反
<<  :左移
>>  :右移
&   :位与
^   :位异或|   :位或

sizeof 연산자

는 점유된 바이트 수를 반환하며 결과 값은 size_t 유형입니다.

有如下两种形式:sizeof(type)sizeof expr
  • 은 올바른 결합법칙을 만족합니다.

유형 변환

암시적 유형 변환

대부분의 경우 배열은 포인터로 변환됩니다.
- 배열이 decltype 키워드 인수로 사용되거나 주소 연산자(&), sizeof 및 typeid와 같은 연산자의 피연산자로 사용되는 경우 위의 변환이 발생하지 않습니다.

표시 변환

  • 이름이 지정된 Cast-name Cast-name에는 다음 유형이 있습니다.

    cast-name<type>(expression)
  • 참조: C++ Primer Fifth Edition

소개는 언어 자체에 의해 정의되며 내장 유형에 사용됩니다. 표준 라이브러리에 정의된 여러 연산자에 대한 간략한 소개입니다.

관련 기사:

1장 C++: 함수 반환 값, GNU 컴파일러 명령

2장 C++: 변수 및 기본 유형

위 내용은 4장 C++: 표현식 개념 - 연산자 적용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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