개요
C++에서 연산자(Operators)는 변수와 값을 조작하거나 처리하는 데 사용됩니다. 연산자는 특정 작업을 수행하는 기호이며, 다양한 유형의 연산자가 제공됩니다. 이 문서에서는 주요 연산자의 유형과 사용법을 설명합니다.
연산자의 종류
C++에서 연산자는 다음과 같이 분류됩니다:
1. 산술 연산자 (Arithmetic Operators)
특징
- 기본적인 산술 연산을 수행합니다.
- 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산이 포함됩니다.
연산자 및 설명
연산자 |
설명 |
예시 |
+ |
덧셈 |
a + b |
- |
뺄셈 |
a - b |
* |
곱셈 |
a * b |
/ |
나눗셈 |
a / b |
% |
나머지 |
a % b |
예제
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 3;
cout << "Sum: " << (a + b) << endl;
cout << "Difference: " << (a - b) << endl;
cout << "Product: " << (a * b) << endl;
cout << "Quotient: " << (a / b) << endl;
cout << "Remainder: " << (a % b) << endl;
return 0;
}
출력
Sum: 13
Difference: 7
Product: 30
Quotient: 3
Remainder: 1
2. 관계 연산자 (Relational Operators)
특징
- 두 값을 비교합니다.
- 조건문의 조건을 평가하는 데 주로 사용됩니다.
연산자 및 설명
|
|
|
연산자 |
설명 |
예시 |
== |
같음 |
a == b |
!= |
같지 않음 |
a != b |
< |
작음 |
a < b |
> |
큼 |
a > b |
<= |
작거나 같음 |
a <= b |
>= |
크거나 같음 |
a >= b |
예제
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 10;
cout << "Is a equal to b? " << (a == b) << endl;
cout << "Is a not equal to b? " << (a != b) << endl;
cout << "Is a less than b? " << (a < b) << endl;
cout << "Is a greater than b? " << (a > b) << endl;
return 0;
}
출력
Is a equal to b? 0
Is a not equal to b? 1
Is a less than b? 1
Is a greater than b? 0
3. 논리 연산자 (Logical Operators)
특징
- 논리적인 조건을 평가합니다.
- 참(
true
)과 거짓(false
)의 결합 및 부정을 처리합니다.
연산자 및 설명
연산자 |
설명 |
예시 |
&& |
논리 AND |
a && b |
| |
논리 OR |
a | b |
! |
논리 NOT |
!a |
예제
#include <iostream>
using namespace std;
int main() {
bool a = true, b = false;
cout << "a AND b: " << (a && b) << endl;
cout << "a OR b: " << (a || b) << endl;
cout << "NOT a: " << (!a) << endl;
return 0;
}
출력
a AND b: 0
a OR b: 1
NOT a: 0
4. 비트 연산자 (Bitwise Operators)
특징
- 이진수 단위로 연산을 수행합니다.
- 정수형 데이터에만 적용됩니다.
연산자 및 설명
연산자 |
설명 |
예시 |
& |
비트 AND |
a & b |
| |
비트 OR |
a | b |
^ |
비트 XOR |
a ^ b |
~ |
비트 NOT |
~a |
<< |
비트 왼쪽 쉬프트 |
a << 2 |
>> |
비트 오른쪽 쉬프트 |
a >> 2 |
예제
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 3;
cout << "a AND b: " << (a & b) << endl;
cout << "a OR b: " << (a | b) << endl;
cout << "a XOR b: " << (a ^ b) << endl;
cout << "NOT a: " << (~a) << endl;
cout << "a << 1: " << (a << 1) << endl;
cout << "a >> 1: " << (a >> 1) << endl;
return 0;
}
출력
a AND b: 1
a OR b: 7
a XOR b: 6
NOT a: -6
a << 1: 10
a >> 1: 2
5. 대입 연산자 (Assignment Operators)
특징
- 변수에 값을 대입하거나 연산 후 대입합니다.
연산자 및 설명
연산자 |
설명 |
예시 |
= |
대입 |
a = b |
+= |
덧셈 후 대입 |
a += b |
-= |
뺄셈 후 대입 |
a -= b |
*= |
곱셈 후 대입 |
a *= b |
/= |
나눗셈 후 대입 |
a /= b |
%= |
나머지 연산 후 대입 |
a %= b |
6. 기타 연산자 (Other Operators)
연산자 및 설명
연산자 |
설명 |
예시 |
?: |
삼항 연산자 (조건 ? 참 : 거짓) |
a > b ? a : b |
sizeof |
데이터 타입 또는 변수의 크기 반환 |
sizeof(int) |
typeid |
객체의 타입 정보를 반환 (<typeinfo> 필요) |
typeid(a).name() |
-> |
포인터가 가리키는 객체의 멤버 접근 |
ptr->member |
. |
객체의 멤버 접근 |
obj.member |
,* |
역참조 연산자 |
*ptr |
예제
#include <iostream>
#include <typeinfo>
using namespace std;
int main() {
int a = 10, b = 20;
int *ptr = &a;
cout << "Larger value: " << (a > b ? a : b) << endl;
cout << "Size of int: " << sizeof(int) << " bytes" << endl;
cout << "Type of a: " << typeid(a).name() << endl;
cout << "Pointer value: " << *ptr << endl;
return 0;
}
출력
Larger value: 20
Size of int: 4 bytes
Type of a: i
Pointer value: 10
결론
C++에서 제공하는 다양한 연산자는 데이터 처리와 논리적 평가에 중요한 도구를 제공합니다. 연산자의 올바른 사용법을 이해하면 효율적이고 강력한 코드를 작성할 수 있습니다.