산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 연산자 종합 가이드: 종류, 사용법, 우선순위

연산자(operator)는 컴파일러에게 특정 수학적 또는 논리적 조작을 수행하도록 지시하는 기호입니다. C++은 풍부한 내장 연산자를 제공하며 다음과 같은 유형이 있습니다.

이 장에서는 산술, 관계, 논리, 비트, 대입 및 기타 연산자를 하나씩 살펴보겠습니다.

산술 연산자

C++ 언어가 지원하는 산술 연산자는 다음과 같습니다.

변수 A가 10, 변수 B가 20을 담고 있다고 가정하면:

연산자설명예시
+두 피연산자 더하기A + B = 30
-첫 번째 피연산자에서 두 번째 빼기A - B = -10
*두 피연산자 곱하기A * B = 200
/분자를 분모로 나누기B / A = 2
%모듈러스 연산자, 정수 나눗셈 후 나머지B % A = 0
++증가 연산자, 정수 값을 1 증가A++ = 11
--감소 연산자, 정수 값을 1 감소A-- = 9

관계 연산자

C++ 언어가 지원하는 관계 연산자는 다음과 같습니다.

변수 A가 10, 변수 B가 20을 담고 있다고 가정하면:

연산자설명예시
==두 피연산자 값이 같은지 검사, 같으면 true(A == B) is not true
!=두 피연산자 값이 다른지 검사, 다르면 true(A != B) is true
>좌측 피연산자가 우측보다 큰지 검사, 크면 true(A > B) is not true
<좌측 피연산자가 우측보다 작은지 검사, 작으면 true(A < B) is true
>=좌측 피연산자가 우측보다 크거나 같은지 검사(A >= B) is not true
<=좌측 피연산자가 우측보다 작거나 같은지 검사(A <= B) is true

논리 연산자

C++ 언어가 지원하는 논리 연산자는 다음과 같습니다.

변수 A가 1, 변수 B가 0을 담고 있다고 가정하면:

연산자설명예시
&&논리 AND. 두 피연산자가 모두 0이 아니면 true(A && B) is false
||논리 OR. 두 피연산자 중 하나라도 0이 아니면 true(A || B) is true
!논리 NOT. 피연산자의 논리 상태를 반전!(A && B) is true

비트 연산자

비트 연산자는 비트 단위로 작동하며 비트별 연산을 수행합니다. &, |, ^의 진리표:

pqp & qp | qp ^ q
00000
01011
11110
10011

A = 60, B = 13이라고 가정하면 이진 형식으로:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A   = 1100 0011

C++이 지원하는 비트 연산자 표. 변수 A가 60, 변수 B가 13을 담고 있다고 가정하면:

연산자설명예시
&이진 AND. 두 피연산자 모두에 비트가 있으면 결과에 복사(A & B) = 12 (0000 1100)
|이진 OR. 어느 피연산자에든 비트가 있으면 복사(A | B) = 61 (0011 1101)
^이진 XOR. 한 피연산자에만 비트가 설정된 경우 복사(A ^ B) = 49 (0011 0001)
~이진 1의 보수. 단항 연산자, 비트 '반전' 효과(~A) = -61 (2's complement 형태에서 1100 0011)
<<이진 좌측 시프트. 좌측 피연산자 값을 우측 피연산자 지정 비트 수만큼 왼쪽으로 이동A << 2 = 240 (1111 0000)
>>이진 우측 시프트. 좌측 피연산자 값을 우측 피연산자 지정 비트 수만큼 오른쪽으로 이동A >> 2 = 15 (0000 1111)

대입 연산자

C++ 언어가 지원하는 대입 연산자:

연산자설명예시
=단순 대입. 우측 피연산자 값을 좌측 피연산자에 대입C = A + B는 A+B 값을 C에 대입
+=더하기 대입. 우측 피연산자를 좌측에 더하고 결과를 좌측에 대입C += A는 C = C + A와 동일
-=빼기 대입. 우측 피연산자를 좌측에서 빼고 결과를 좌측에 대입C -= A는 C = C - A와 동일
*=곱하기 대입. 우측 피연산자를 좌측에 곱하고 결과를 좌측에 대입C *= A는 C = C * A와 동일
/=나누기 대입. 좌측 피연산자를 우측으로 나누고 결과를 좌측에 대입C /= A는 C = C / A와 동일
%=모듈러스 대입. 두 피연산자로 모듈러스 연산 후 결과를 좌측에 대입C %= A는 C = C % A와 동일
<<=좌측 시프트 대입 연산자C <<= 2는 C = C << 2와 동일
>>=우측 시프트 대입 연산자C >>= 2는 C = C >> 2와 동일
&=비트 AND 대입 연산자C &= 2는 C = C & 2와 동일
^=비트 배타적 OR 대입 연산자C ^= 2는 C = C ^ 2와 동일
|=비트 포함 OR 대입 연산자C |= 2는 C = C | 2와 동일

기타 연산자

C++이 지원하는 기타 연산자들:

번호연산자 및 설명
1

sizeof

변수의 크기를 반환. 예: sizeof(a), a가 int면 4 반환

2

Condition ? X : Y

조건 연산자(?). Condition이 true면 X 값, 아니면 Y 값 반환

3

,

콤마 연산자. 연산 시퀀스를 수행. 전체 콤마 표현식의 값은 리스트의 마지막 표현식 값

4

. (dot) and -> (arrow)

멤버 연산자. 클래스, 구조체, 공용체의 개별 멤버 참조에 사용

5

Cast

형 변환 연산자. 한 데이터 타입을 다른 타입으로 변환. 예: int(2.2000)는 2 반환

6

&

포인터 연산자 &. 변수의 주소 반환. 예: &a는 변수 a의 실제 주소

7

*

포인터 연산자 *. 변수 가리킴. 예: *var는 변수 var 가리킴

C++ 연산자 우선순위

연산자 우선순위는 표현식에서 항의 그룹화를 결정합니다. 이는 표현식 평가 방식에 영향을 줍니다. 특정 연산자는 다른 연산자보다 높은 우선순위를 가집니다. 예: 곱셈 연산자는 덧셈 연산자보다 높은 우선순위.

예: x = 7 + 3 * 2에서 x에는 20이 아닌 13이 대입됩니다. *가 +보다 높은 우선순위이므로 3*2가 먼저 계산되고 7에 더해지기 때문입니다.

아래 표에서 가장 높은 우선순위 연산자가 위에, 가장 낮은 것이 아래에 있습니다. 표현식 내에서 높은 우선순위 연산자가 먼저 평가됩니다.

범주연산자결합성
후위(Postfix)() [] -> . ++ --왼쪽에서 오른쪽
단항(Unary)+ - ! ~ ++ -- (type)* & sizeof오른쪽에서 왼쪽
승법(Multiplicative)* / %왼쪽에서 오른쪽
가법(Additive)+ -왼쪽에서 오른쪽
시프트(Shift)<< >>왼쪽에서 오른쪽
관계(Relational)< <= > >=왼쪽에서 오른쪽
등가(Equality)== !=왼쪽에서 오른쪽
비트 AND&왼쪽에서 오른쪽
비트 XOR^왼쪽에서 오른쪽
비트 OR|왼쪽에서 오른쪽
논리 AND&&왼쪽에서 오른쪽
논리 OR||왼쪽에서 오른쪽
조건(Conditional)?:오른쪽에서 왼쪽
대입(Assignment)= += -= *= /= %= >>= <<= &= ^= |=오른쪽에서 왼쪽
콤마(Comma),왼쪽에서 오른쪽

C 언어

  1. C# 연산자 – C# 연산자 종합 가이드
  2. C++ 데이터 타입 이해하기: 기초, 수정자, 모범 사례
  3. C++ 연산자 마스터하기: 유형별 완벽 가이드와 실전 예제
  4. C++ 주석: 가독성 높고 유지보수하기 좋은 코드 작성법
  5. C++ 클래스 템플릿 마스터: 실전 가이드
  6. C 프로그래밍 연산자 완벽 가이드
  7. 파이썬 연산자 마스터하기: 종합 가이드
  8. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  9. C++ 연산자 총정리: 종류, 예제, 샘플 프로그램
  10. C 연산자 완전 정복: 산술, 관계, 논리, 비트, 대입, 우선순위 총정리