언어 자체에서 정의하고 내장형 피연산자에 사용되는 연산자를 소개하고, 표준 라이브러리에서 정의하는 여러 연산자를 간략하게 소개합니다.
단항 연산자: 하나의 피연산자에 작용하는 연산자
이진 연산자: 두 개의 피연산자에 작용하는 연산자
함수 호출도 특별합니다 피연산자 수에 제한이 없는 연산자
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)
관계 연산자는 산술 또는 포인터 유형에 대해 작동하고 논리 연산자는 부울 값 유형.
- 반환 값은 모두 부울 유형입니다.
단락 평가
관계 연산자의 평가 결과는 부울 값이며 함께 사용할 수 있습니다. 예상치 못한 결과가 발생합니다:
if(i < j < k) //若k大于1则为真
는 다음과 같이 변경되어야 합니다.
if(i < j && j < k)
할당 연산자 왼쪽 피연산자는 수정 가능한 lvalue여야 합니다.
대입 연산자의 왼쪽과 오른쪽 피연산자의 유형이 다른 경우 오른쪽 피연산자는 왼쪽 피연산자의 유형으로 변환됩니다.
int i, j; i = j = 0; //正确,都被赋值为0
cond ? expr1 : expr2
는 오른쪽 결합법칙을 만족하며 피연산자는 일반적으로 오른쪽에서 왼쪽 순서로 결합됩니다.
정수 유형의 피연산자 및 비트 세트라는 표준 라이브러리 유형에 대해 작동합니다.
~ :位求反 << :左移 >> :右移 & :位与 ^ :位异或| :位或
는 점유된 바이트 수를 반환하며 결과 값은 size_t 유형입니다.
有如下两种形式:sizeof(type)sizeof expr
은 올바른 결합법칙을 만족합니다.
대부분의 경우 배열은 포인터로 변환됩니다.
- 배열이 decltype 키워드 인수로 사용되거나 주소 연산자(&), sizeof 및 typeid와 같은 연산자의 피연산자로 사용되는 경우 위의 변환이 발생하지 않습니다.
이름이 지정된 Cast-name Cast-name에는 다음 유형이 있습니다.
cast-name<type>(expression)
소개는 언어 자체에 의해 정의되며 내장 유형에 사용됩니다. 표준 라이브러리에 정의된 여러 연산자에 대한 간략한 소개입니다.
관련 기사:
1장 C++: 함수 반환 값, GNU 컴파일러 명령위 내용은 4장 C++: 표현식 개념 - 연산자 적용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!