C++에서 연산자는 하나 이상의 피연산자에 대해 연산을 수행하는 기호입니다. 연산자는 산술, 논리, 관계, 비트와이즈, 대입 등 다양한 종류가 있습니다.
예제:
a = x + y;
여기서 x와 y는 피연산자이고 +는 덧셈 연산자입니다. 컴파일러는 x와 y를 더해 결과를 a에 저장합니다.
이 튜토리얼에서 배울 내용:
연산자란 무엇인가
C++ 연산자 종류
산술 연산자
관계 연산자
논리 연산자
비트와이즈 연산자
대입 연산자
기타 연산자 (sizeof, 콤마, 조건, 우선순위)
C++ 연산자 종류
C++는 6가지 주요 연산자 범주를 정의합니다:
산술 연산자
관계 연산자
논리 연산자
비트와이즈 연산자
대입 연산자
기타 연산자
산술 연산자
이 연산자들은 수학적 계산을 수행합니다.
연산자
설명
+
두 피연산자 더하기
-
첫 번째에서 두 번째 빼기
*
두 피연산자 곱하기
/
분자를 분모로 나누기
%
나눗셈 나머지 반환
++
정수를 1 증가
--
정수를 1 감소
예제 프로그램:
#include <iostream>
using namespace std;
int main() {
int a = 11;
int b = 5;
int c;
cout << "a + b is :" << a+b << endl;
cout << "a - b is :" << a-b << endl;
cout << "a * b is :" << a*b << endl;
cout << "a / b is :" << a/b << endl;
cout << "a % b is :" << a%b << endl;
cout << "a++ is :" << a++ << endl;
cout << "a-- is :" << a-- << endl;
return 0;
}
출력:
코드 설명은 간결성을 위해 생략합니다.
관계 연산자
이 연산자들은 피연산자를 비교하고 불리언 결과를 반환합니다.
연산자
설명
==
동등성 검사
!=
부등성 검사
>
보다 큼
<
보다 작음
>=
크거나 같음
<=
작거나 같음
예제 프로그램:
#include <iostream>
using namespace std;
int main() {
int a = 11;
int b = 5;
cout << "a=11, b=5" << endl;
if (a == b) {
cout << "a == b is true" << endl;
} else {
cout << "a == b is false" << endl;
}
if (a < b) {
cout << "a < b is true" << endl;
} else {
cout << "a < b is false" << endl;
}
if (a > b) {
cout << "a > b is true" << endl;
} else {
cout << "a > b is false" << endl;
}
return 0;
}
출력:
논리 연산자
논리 연산자는 불리언 표현식을 결합합니다.
연산자
설명
&&
논리 AND – 두 피연산자 모두 0이 아니면 true
||
논리 OR – 적어도 하나의 피연산자가 0이 아니면 true
!
논리 NOT – 불리언 값 반전
예제 프로그램:
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 2, c = 6, d = 4;
if (a == b && c > d)
cout << "a equals to b AND c is greater than d\n";
else
cout << "AND operation returned false\n";
if (a == b || c > d)
cout << "a equals to b OR c is greater than d\n";
else
cout << "Neither a is equal to b nor c is greater than d\n";
if (!b)
cout << "b is zero\n";
else
cout << "b is not zero";
return 0;
}
출력:
비트와이즈 연산자
비트와이즈 연산자는 정수 값의 개별 비트에 대해 연산을 수행합니다.
연산자
설명
&
비트 AND – 두 비트 모두 1일 때만 1
|
비트 OR – 적어도 하나의 비트가 1이면 1
^
비트 XOR – 비트가 다를 때 1
<<
왼쪽 시프트 – 비트를 왼쪽으로 이동, 0으로 채움
>>
오른쪽 시프트 – 비트를 오른쪽으로 이동, 하위 비트 버림
~
비트 NOT – 모든 비트 반전
예제 프로그램:
#include <iostream>
using namespace std;
int main() {
unsigned int p = 60; // 0011 1100
unsigned int q = 13; // 0000 1101
int z = 0;
z = p & q;
cout << "p&q is : " << z << endl; // 12
z = p | q;
cout << "p|q is : " << z << endl; // 61
z = p ^ q;
cout << "p^q is : " << z << endl; // 49
z = ~p;
cout << "~p is : " << z << endl; // -61
z = p << 2;
cout << "p<<2 is: " << z << endl; // 240
z = p >> 2;
cout << "p>>2 is : " << z << endl; // 15
return 0;
}
출력:
대입 연산자
이 연산자들은 변수에 값을 대입하며, 종종 산술 연산과 결합됩니다.
연산자
설명
=
단순 대입
+=
더하고 대입
-=
빼고 대입
*=
곱하고 대입
/=
나누고 대입
예제 프로그램:
#include <iostream>
using namespace std;
int main() {
int x = 5;
cout << "Initial value of x is " << x << "\n";
x += 5;
cout << "x += 5 gives :" << x << "\n";
x -= 5;
cout << "x -= 5 gives : " << x << "\n";
x *= 5;
cout << "x *= 5 gives :" << x << "\n";
x /= 5;
cout << "x /= 5 gives : " << x << "\n";
return 0;
}
출력:
기타 연산자
sizeof 연산자
타입이나 객체의 크기를 바이트 단위로 반환합니다.
예제:
#include <iostream>
using namespace std;
int main() {
cout << "Size of int : " << sizeof(int) << "\n";
cout << "Size of char : " << sizeof(char) << "\n";
cout << "Size of float : " << sizeof(float) << "\n";
cout << "Size of double : " << sizeof(double) << "\n";
return 0;
}
출력:
콤마 연산자
표현식 시퀀스를 실행하고 마지막 표현식의 값을 반환합니다.
예제:
#include <iostream>
using namespace std;
int main() {
int x, y;
y = 100;
x = (y++, y + 10, 99 + y);
cout << x;
return 0;
}
출력:
조건 연산자
삼항 연산자라고도 하며, 조건을 평가하여 두 표현식 중 하나를 반환합니다.
문법: condition ? expr1 : expr2
예제:
#include <iostream>
using namespace std;
int main() {
int a = 1, b;
b = (a < 10) ? 2 : 5;
cout << "value of b: " << b << endl;
return 0;
}
출력:
연산자 우선순위
단일 표현식에 여러 연산자가 나타날 때, 우선순위 규칙이 평가 순서를 결정합니다. 높은 것부터 낮은 것 순: