c operators types
예제를 사용한 C ++ 연산자에 대한 완전한 연구 :
이것에 집중 C ++ 교육 시리즈, 이전 튜토리얼에서 변수, 스토리지 클래스, 유형 한정자 등과 같은 C ++의 다양한 개념에 대해 배웠습니다. 또한 이러한 변수를 어떻게 수정할 수 있는지 알게되었습니다.
이러한 수정을 수행하려면 이러한 변수 및 상수에 대한 작업을 수행하고 연산자를 사용하는 이러한 작업을 수행해야합니다.
연산자는 피연산자라고하는 변수 또는 기타 엔티티에 대해 작동하고 수학적 또는 논리적 연산을 수행하여 값을 수정하고 그에 따라 결과를 생성하는 기호입니다.
학습 내용 :
C ++의 연산자
연산자는 모든 프로그래밍 언어의 기본 기반을 형성합니다. 연산자 없이는 프로그래밍 언어의 엔티티를 수정하거나 조작 할 수 없으므로 원하는 결과를 얻을 수 없습니다. C ++는이 튜토리얼에서 자세히 논의 할 내장 연산자가 매우 풍부합니다.
Java에서 double은 무엇을 의미합니까?
C ++에서 대부분의 연산자는 이항 연산자입니다. 즉, 이러한 연산자는 연산을 수행하기 위해 두 개의 피연산자가 필요합니다. ++ (증가) 연산자와 같은 연산자는 단항 연산자이므로 하나의 피연산자에서만 작동합니다.
C ++에는 세 개의 피연산자를 사용하는 Conditional Operator라는 삼항 연산자도 있습니다. 튜토리얼의 뒷부분에서 이에 대해 자세히 알아볼 것입니다.
C ++의 연산자 유형
C ++의 연산자는 다음과 같이 분류됩니다.
각 유형의 C ++ 연산자를 자세히 살펴 보겠습니다 !!
산술 연산자
산술 연산자는 피연산자에 대한 기본적인 수학 연산을 수행하는 데 사용됩니다.
C ++는 다음 산술 연산을 지원합니다.
운영자 | 이진 / 단항 | 기술 |
---|---|---|
- | 단항 | 연산자 감소 – 피연산자의 값을 1만큼 감소시킵니다. |
+ | 바이너리 | 두 개의 피연산자 추가 |
- | 바이너리 | 두 피연산자 빼기 |
* | 바이너리 | 두 피연산자의 곱셈 |
/ | 바이너리 | 두 피연산자의 나누기 |
% | 바이너리 | 모듈러스 연산자 – 결과는 나눗셈의 나머지입니다. |
++ | 단항 | 증분 연산자 – 피연산자 값을 1 씩 증가시킵니다. |
아래 예제는 C ++에서 처음 5 개의 산술 연산자를 보여줍니다.
#include #include using namespace std; int main() { int op1=3,op2=4; float op3=10.1,op4=5.4; cout<<'Operands are op1 = '< 다음 예제를 사용하면이를 더 잘 이해할 수 있습니다. #include #include using namespace std; int main() { int x=4,y; y = ++x; cout<<'PreIncrement:Value of x = '<논리 연산자 논리 연산자는 결과 값을 얻기 위해 조건 / 제약 조건의 조합을 평가하는 데 사용됩니다. 부울 표현식의 평가 결과는 참 또는 거짓 인 부울입니다.
C ++는 다음 논리 연산자를 지원합니다.
운영자 기술 7 L-> R <<
>> 왼쪽으로 비트 시프트
비트 오른쪽으로 시프트 && 논리 AND : 두 조건이 모두 참이면 참을 반환하고 그렇지 않으면 거짓을 반환합니다. || 논리 OR : 조건 중 하나가 참이면 참을 반환합니다. 두 조건이 모두 거짓이면 거짓을 반환합니다. ! 논리적 NOT : 조건을 부정합니다.
C ++는 논리식을 평가하기 위해 단락 방법을 사용합니다. 이 경우 C ++는 논리 표현식의 첫 번째 표현식 / 피연산자 만 평가하여 결과를 제공해야합니다. 예를 들어, 논리 AND (&&) 연산자의 경우 C ++는 첫 번째 표현식 만 평가합니다. 거짓이면 두 번째 조건이 참 이어도 결과는 거짓이됩니다.
마찬가지로 논리 OR (||)의 경우 첫 번째 표현식 만 평가합니다. 첫 번째식이 참이면 결과가 참이되므로 두 번째 식을 평가할 필요가 없습니다.
다음은 논리 연산자의 사용법을 보여주는 예입니다.
#include #include using namespace std; int main() int a=10, b=8,c=12,d=14; if(!(a==0)) cout<<'a is not zero'< 산출:
a는 0이 아니다
논리 AND가 참
논리 OR이 참
위의 프로그램에서는 식을 평가하고 결과를 인쇄하기 위해 세 가지 논리 연산자를 모두 사용했습니다.
관계 연산자
관계형 또는 비교 연산자는 두 피연산자를 비교하는 데 사용됩니다. 평가 결과는 참 또는 거짓입니다.
C ++는 다음 관계 연산자를 지원합니다.
운영자 기술 !오류! 예기치 않은 연산자 '=' 두 피연산자가 같은지 여부를 평가합니다. 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다. ! = (같지 않음) '같음'연산자를 보완합니다. 피연산자가 같지 않으면 true를 반환합니다. 그렇지 않으면 거짓입니다. <(less than) 첫 번째 피연산자가 두 번째보다 작 으면 true를 반환합니다. 그렇지 않으면 거짓입니다. <=(less than equal to) 첫 번째 피연산자가 두 번째 피연산자보다 작거나 같은 경우 true를 반환합니다. 그렇지 않으면 거짓입니다. > (보다 큼) 첫 번째 피연산자가 두 번째보다 크면 true를 반환합니다. 그렇지 않으면 거짓입니다. > = (보다 큼) 첫 번째 피연산자가 두 번째 피연산자보다 크면 true를 반환합니다. 그렇지 않으면 거짓입니다.
관계 연산자를 이해하려면 아래 예제 프로그램을 참조하십시오.
#include #include using namespace std; int main() { int a=10, b=8,c=12,d=14; if(a==b) cout<<'a is equal to b'< 산출:
a는 b와 같지 않습니다.
c는 d와 같지 않습니다.
(a + b) (c + d)보다 작거나 같음
(a-b) (d-c)보다 크거나 같음
위의 프로그램에서 관계 연산자의 사용법과 제공된 표현식을 평가하는 방식을 볼 수 있습니다.
조건문에 값뿐만 아니라 변수와 표현식도 제공 할 수 있습니다.
비트 연산자
C ++의 비트 연산자는 제공된 피연산자의 비트에서 작동합니다. 비트 연산자는 정수, 문자 등과 같은 정수 유형에만 적용되며 float, double 등과 같은 데이터 유형에는 적용되지 않습니다.
다음은 C ++에서 지원하는 비트 연산자입니다.
연산자 기술 & (바이너리 AND) 피연산자 1과 피연산자 2의 비트에 대해 AND 연산을 수행합니다. | (이진 OR) 피연산자 1과 피연산자 2의 비트에 대해 OR 연산을 수행합니다. ^ (이진 XOR) 피연산자 1과 피연산자 2의 비트에 대해 XOR 연산을 수행합니다. ~ (이진 1의 보수) 피연산자 하나를 취하고 비트를 반전합니다. <<( Binary left shift operator) 첫 번째 피연산자의 비트를 두 번째 피연산자에서 지정한 비트 수만큼 왼쪽으로 이동합니다. >> (이진 오른쪽 시프트 연산자) 첫 번째 피연산자의 비트를 오른쪽으로 두 번째 피연산자가 지정한 자리 수만큼 이동합니다.
이러한 비트 연산자는 비트 단위 방식으로 피연산자에서 작동합니다. AND, OR 및 XOR 연산에 대한 진리표는 다음과 같습니다.
a와 b를 AND, OR 및 XOR 연산이 수행되는 두 비트로 간주합니다.
동일한 진리표는 다음과 같습니다.
...에 비 a & b a | b a ^ b 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0
Bitwise Operations를 이해하기 위해 예제를 살펴 보겠습니다.
a = 8 및 b = 4
a와 b의 이진 표현은 다음과 같습니다.
a = 8 1000
a = 4 0100
a & b 0000 = 0
a | b 1100 = 12
a ^ b 1100 = 12
위의 예에서 8과 4의 비트 AND가 0이라는 것을 알 수 있습니다. 8과 4의 비트 OR은 12이고 8과 4의 비트 XOR도 12입니다.
이것은 비트 연산자가 비트 연산을 수행하는 방식입니다.
비트 연산자를 보여주는 예제.
#include #include using namespace std; int main() int a=8,b=4,c; c = a&b; cout<<'Result of & : '< 산출:
& 결과 : 0
결과 | : 12
^의 결과 : 12
에 의한 결과<< by 2 bits: 32
>>의 결과 2 비트 : 1
~ 결과 : -4
위의 프로그램에서 비트 연산자의 사용법을 시연하고 각 연산의 출력도 인쇄했습니다.
할당 연산자
할당 연산자 '='는 변수에 값을 할당하는 데 사용됩니다. 할당 연산자의 LHS는 변수이고 RHS는 변수에 할당 될 값입니다. 오른쪽에있는 값은 왼쪽에있는 변수와 동일한 유형이어야합니다.
‘=’및‘==’연산자의 차이점에 유의하십시오. 전자는 할당 연산자이고 나중은 같음 연산자입니다.
할당 작업은 오른쪽에서 왼쪽으로 이루어집니다. 할당 연산자 '='외에도 '복합 할당 연산자'라고하는 다른 변형 할당 연산자가 있습니다. 이러한 연산자는 할당 외에 작업을 수행합니다.
아래 표는 이러한 할당 연산자에 대한 설명을 제공합니다.
운영자 기술 = RHS 피연산자의 값을 LHS 피연산자에 할당합니다. + = LHS 피연산자에 RHS 피연산자를 추가하고 결과를 LHS 피연산자에 할당합니다. -= RHS 피연산자를 LHS 피연산자에서 빼고 결과를 LHS 피연산자에 할당합니다. * = RHS 피연산자를 LHS 피연산자에 곱하고 결과를 LHS 피연산자에 할당합니다. / = RHS 피연산자를 LHS 피연산자로 나누고 결과를 LHS 피연산자에 할당합니다.
위 표에서 볼 수 있듯이 x와 y가 피연산자이면 x + = y는 x = x + y와 같습니다.
비슷하게,
x-= y는 x = x-y와 같습니다.
x * = y는 x = x * y와 같습니다.
x / = y는 x = x / y와 같습니다.
아래 프로그래밍 예제는 이러한 할당 연산자를 보여줍니다.
#include #include using namespace std; int main() { int x,y; cout<>y; x = y; cout<<'
Value of x = '< 산출:
입력 변수 y 입력 : 4
x의 값 = 4
a + = b : 8
c-= b : 3
a * = b : 40
b / = c : 1

위의 예에서는 할당 및 복합 할당 연산자를 보여주었습니다.
노트 : %와 같은 다른 이항 연산자를 결합 할 수도 있습니다.<>, &, |, ^ 등을 이미 설명 된 것 외에 복합 할당 문에 추가합니다.
기타 연산자
지금까지 C ++의 모든 주요 연산자를 살펴 보았습니다. 주의가 필요한 몇 가지 추가 C ++ 연산자가 있습니다.
이러한 연산자는 다음과 같습니다.
(i) 연산자의 크기
sizeof는 C 및 C ++에서 광범위하게 사용되는 단항 연산자입니다. Sizeof는 피연산자의 크기를 반환합니다. 반환 값은 일반적으로 'size_t'로 표시되는 부호없는 정수 유형입니다.
Sizeof 연산자는 C 및 C ++ 언어에서 많이 사용됩니다. 변수, 배열 또는 표현식의 크기를 알아 내고 메모리 블록을 할당하는 데에도 사용할 수 있습니다.
(ii) 조건부 삼항 연산자
C ++의 조건부 연산자는 if-else 문을 대신하여 사용할 수 있습니다.
조건부 연산자의 일반 구문은 다음과 같습니다.
질환? 표현 1 : 표현 2;
조건이 참이면 식 1이 평가됩니다. 조건이 거짓이면 expression2가 평가됩니다.
잠재적 인 오류를 방지하려면 expression1과 expression2의 데이터 유형이 동일해야합니다.
추천 읽기 => C #의 삼항 연산자
(iii) 쉼표 연산자
토큰‘,’으로 표시되는 쉼표 연산자는 연산자와 구분 기호로 사용할 수 있습니다.
연산자로서 평가할 표현식이 둘 이상있을 때 쉼표가 사용됩니다. 가장 오른쪽 표현식 만 LHS에 할당됩니다.
예를 들어,다음 표현을 고려하십시오.
x = (y = 4, y + 1);
이 식에서는 오른쪽에 쉼표로 구분 된 두 개의식이 있습니다. 여기서 쉼표는 연산자 역할을합니다. 먼저 식 y = 4가 평가됩니다. 그런 다음 첫 번째 표현식의 결과 즉, y = 4를 사용하여 다음 표현식 y + 1이 평가됩니다. 따라서 y + 1의 값은 5가되고이 값은 x에 할당됩니다.
구분 기호로 쉼표를 사용하여 정의, 매개 변수 목록 등을 구분할 수 있습니다.
(iv) 회원 액세스 운영자
C ++에서 클래스, 구조 또는 공용체의 개별 멤버에 액세스하는 데 사용되는 두 개의 연산자가 있습니다. 점 연산자 (.) 및 화살표 (->) 연산자입니다. 우리는 C ++에서 객체 지향 프로그래밍을 배울 때 이러한 연산자를 자세히 배울 것입니다.
아래 예제는 sizeof, Comma 및 Conditional Operator의 사용법을 보여줍니다.
#include #include using namespace std; int main() { int x,y; x = (y=3,y+4); cout<<'Value of x = '< 산출:
x 값 = 7
변수 x가 5보다 큽니다.
sizeof (x) : 4 sizeof (y) : 4
동일한 스크린 샷은 아래와 같습니다.

위의 프로그램에서 볼 수 있듯이 먼저 쉼표로 구분 된 두 개의 변수가 선언되어 있습니다. (구분자로 쉼표). 다음으로 두 개의 표현식이있는 쉼표 연산자가 있습니다. 출력에서 볼 수 있듯이 가장 오른쪽 표현식의 값은 변수 x에 할당됩니다. 다음으로 x가 5보다 작은 지 평가하는 조건부 연산자를 보여줍니다.
마지막으로 sizeof 연산자의 사용법을 보여줍니다. 여기서 우리는 변수 x와 y의 크기를 얻기 위해 sizeof 연산자를 사용합니다. 둘 다 정수 변수이므로 반환되는 크기는 4 바이트입니다.
(v) 연산자 우선 순위 및 연관성
우리는 이미 거의 모든 C ++ 연산자를 보았으며 특정 연산을 수행하기 위해 표현식에서 사용할 수 있다는 것을 알고 있습니다. 그러나 예제에서 본 표현은 간단하고 간단합니다. 그러나 우리의 요구 사항에 따라 표현은 점점 더 복잡 해지는 경향이 있습니다.
이러한 복잡한 표현식에는 둘 이상의 연산자와 많은 피연산자가 있습니다. 이러한 상황에서 먼저 평가할 연산자를 평가해야합니다.
예를 들어, 다음 식을 고려하십시오.
x = 4 + 5/3;
여기에 + 및 / 연산자가 있으며 먼저 평가할 표현식을 결정해야합니다. 수학적 측면에서 우리는 더하기 전에 나눗셈이 수행된다는 것을 알고 있습니다. 따라서 표현식은 x = 4 + (5/3) = 5가됩니다.
그러나 컴파일러가 이러한 상황에 직면했을 때, 우리는 또한 연산 순서를 결정하는 유사한 메커니즘을 가져야 표현식을 적절하게 평가할 수 있습니다.
복합 표현식의 연산자가 평가되는이 순서를 연산자의 '우선 순위'라고합니다. C ++는 모든 연산자에 대해 우선 순위를 정의했으며 우선 순위가 더 높은 연산자가 먼저 평가됩니다.
같은 우선 순위를 가진 표현식에 두 개의 연산자가 나란히 있으면 어떻게 될까요? 이것은 연산자의 연관성이 그림에 나오는 곳입니다.
연관성은 표현식을 왼쪽에서 오른쪽 순서로 평가할지 오른쪽에서 왼쪽 순서로 계산할지 여부를 컴파일러에 알려줍니다. 따라서 연산자의 우선 순위와 연관성을 사용하여 효과적으로 표현식을 평가하고 원하는 결과를 얻을 수 있습니다.
C ++는 사용하는 다양한 연산자의 우선 순위와 연관성으로 구성된 테이블을 제공합니다.
이 표는 다음과 같습니다.
우선 순위 / 연관성 운영자 기술 1 없음 ::
:: 범위 해결 연산자
(단항)
(이진) 2 L-> R ()
()
()
{}
유형()
유형{}
()
.
->
++
––
typeid
const_cast
dynamic_cast
reinterpret_cast
static_cast 괄호
함수 호출
초기화
균일 한 초기화 (C ++ 11)
기능성 캐스트
함수형 캐스트 (C ++ 11)
배열 첨자
개체에서 구성원 액세스
개체 ptr에서 구성원 액세스
사후 증분
사후 감소
런타임 유형 정보
const 버리기
런타임 유형 확인 캐스트
한 유형을 다른 유형으로 캐스트 컴파일 타임 유형 검사 캐스트 3 R-> L +
-
++
––
!
~
(유형)
크기
&
*
새로운
새로운()
지우다
지우다() 단항 더보기
단항 빼기
사전 증가
사전 감소
논리적 NOT
비트 NOT
C 스타일 캐스트
크기 (바이트)
주소
역 참조
동적 메모리 할당
동적 배열 할당
동적 메모리 삭제
동적 어레이 삭제 4 L-> R -> *
. * 멤버 포인터 선택기
멤버 개체 선택기 5 L-> R *
/
% 곱셈
분할
계수 6 L-> R +
- 부가
빼기 8 L-> R <
<=
>
> = 이하 비교
작거나 같음 비교
보다 큼 비교
보다 크거나 같은 비교 9 L-> R !오류! 잘못된 문자 '!' 평등
불평등 10 L-> R & 비트 AND 11 L-> R ^ 비트 XOR 12 L-> R | 비트 OR 13 L-> R && 논리적 AND 14 L-> R || 논리적 OR 15 R-> L ? :
=
* =
/ =
% =
+ =
-=
<<=
>> =
& =
| =
^ = 조건부 (아래 참고 참조)
할당
곱셈 할당
부문 할당
계수 할당
추가 할당
빼기 할당
비트 왼쪽 시프트 할당
비트 오른쪽 시프트 할당
비트 AND 할당
비트 OR 할당
비트 XOR 할당 16 R-> L 던지다 표현 던지기 17 L-> R , 쉼표 연산자
노트:
- 우선 순위 수준 1이 가장 높은 우선 순위 수준이고 수준 17이 가장 낮습니다. 우선 순위 수준이 더 높은 연산자가 먼저 평가됩니다.
- L-> R은 왼쪽에서 오른쪽으로의 연관성을 의미합니다.
- R-> L은 오른쪽에서 왼쪽으로의 연관성을 의미합니다.
결론
이것은 C ++의 연산자에 관한 것입니다.
Windows 10 용 PC 클리너 무료 다운로드
우리는 거의 모든 운영자에 대해 논의했습니다. 우리가 논의하지 않은 위의 우선 순위 표에있는 일부 특정 연산자는 다음 튜토리얼에서 다루는 주제에 따라 논의 될 것입니다.
=> 전체 C ++ 자습서 목록을 탐색하려면 여기를 참조하십시오.
추천 도서