연산자란 연산 대상이 되는 피연산자에 대한 연산을 수행하는 기호를 뜻한다.

C++에서 사용 가능한 연산자에는 산술 연산자, 관계 연산자, 논리 연산자, 증감 연산자, 대입 연산자, 그리고 비트 연산자가 있다.

 

산술 연산자

산술 연산자는 사칙연산의 연산자들과 나머지 연산자가 있다.

각 연산자의 정의는 다음과 같다.

유형 정의
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
 * ----------------------------------------------------------------------------
 */

#include 
using namespace std;

int main()
{
    int a = 5;
    int b = 2;

    int sum = a + b; //더하기
    int sub = a - b; //빼기
    int mul = a * b; //곱하기
    int div = a / b; //나누기
    int rem = a % b; //나머지

    cout << "sum: " << sum << endl;
    cout << "sub: " << sub << endl;
    cout << "mul: " << mul << endl;
    cout << "div: " << div << endl;
    cout << "rem: " << rem << endl;
}

결과

 

sum: 7
sub: 3
mul: 10
div: 2
rem: 1

산술연산자가 연이어 사용되는 경우에는 아래와 같이 연산 우선순위를 적용한다.

1. 괄호 안의 연산자가 첫번째 우선순위를 가진다.

2. 곱셈, 나눗셈, 나머지 연산자가 그 다음 우선순위를 가진다.

3. 덧셈, 뺄셈 연산자가 그 다음 우선순위를 가진다.

4. 같은 우선순위의 연산자가 나열된 경우 좌측 연산자부터 먼저 처리한다.

 

관계 연산자

관계 연산자는 두 수를 비교하는 연산자이다.

주로 제어문에서 조건을 검사하기위해 많이 사용되며 true 혹은 false를 출력한다.

각 연산자의 정의는 다음과 같다.

 

유형 정의
== 같다
!= 다르다
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
 * ----------------------------------------------------------------------------
 */

#include 
using namespace std;

int main()
{
    int a = 5;
    int b = 2;
    
    bool same = a == b; //같다
    bool diff = a != b; //다르다
    bool big = a > b; //크다
    bool big_or_same = a >= b; //크거나 같다
    bool small = a < b; //작다
    bool small_or_same = a <= b; //작거나 같다

    cout << "same: " << boolalpha << same << endl;
    cout << "diff: " << boolalpha << diff << endl;
    cout << "big: " << boolalpha << big << endl;
    cout << "big_or_same: " << boolalpha << big_or_same << endl;
    cout << "small: " << boolalpha << small << endl;
    cout << "small_or_same: " << boolalpha << small_or_same << endl;
}

결과


same: false
diff: true
big: true
big_or_same: true
small: false
small_or_same: false

논리 연산자

논리 연산자는 And, Or, Not의 세가지 종류가 있다.

각 연산자의 정의는 다음과 같다.

유형 정의
&& 그리고 (AND)
|| 혹은 (OR)
! 아닐때 (NOT)

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
 * ----------------------------------------------------------------------------
 */

#include 
using namespace std;

int main()
{
    bool AND = true && false;
    bool OR = true || false;
    bool excl = !true;

    cout << "AND: " << boolalpha << AND << endl;
    cout << "OR: " << boolalpha << OR << endl;
    cout << "excl: " << boolalpha << excl << endl;
}

결과

 


AND: false
OR: true
excl: false

증감 연산자

증감 연산자는 변수의 값을 증가시키거나 감소시킬때 사용한다.

각 연산자의 정의는 다음과 같다.

유형 정의
++i 연산 전에 i값 1 증가
i++ 연산 후에 i값 1 증가
--i 연산 전에 i값 1 감소
i-- 연산 후에 i값 1 감소

/*
 * ----------------------------------------------------------------------------
 * "THE BEER-WARE LICENSE" (Revision 42):
 * <ggkids9211@gmail.com> wrote this file. As long as you retain this notice you
 * can do whatever you want with this stuff. If we meet some day, and you think
 * this stuff is worth it, you can buy me a beer in return Hyunjun Kim.
 * ----------------------------------------------------------------------------
 */

#include 
using namespace std;

int main()
{
    int i = 9;
    cout << "i++: " << i++ << endl; //해당 연산 후에 값 증가
    cout << "i: " << i << endl; //연산 이후에 값이 증가함.

    i = 9;
    cout << "++i: " << ++i << endl; //해당 연산 전에 값 증가됨.

    i = 9;
    cout << "i--: " << i-- << endl; //해당 연산 후에 값 감소
    cout << "i: " << i << endl; //연산 이후에 값이 감소함.

    i = 9;
    cout << "--i: " << --i << endl; //해당 연산 전에 값 감소됨.
}

결과

 


i++: 9
i: 10
++i: 10
i--: 9
i: 8
--i: 8

대입 연산자

대입 연산자는 동일한 변수가 연산자의 좌우에 모두 쓰이는 경우 간단하게 쓰기위해 사용하는 연산자를 말한다.

각 연산자의 정의는 다음과 같다.

유형 정의
+= i += j;  (이 식과 동일: i = i + j)
-= i -= j;  (이 식과 동일: i = i - j)
*= i *= j;  (이 식과 동일: i = i * j)
/= i /= j;  (이 식과 동일: i = i / j)
%= i %= j;  (이 식과 동일: i = i % j)

비트 단위 연산자

비트 연산자는 정수형 데이터의 비트를 직접 제어하는데 사용하는 연산자를 말한다..

각 연산자의 정의는 다음과 같다.

유형 정의 설명
| OR 대응 비트가 하나만 1이어도 1을 출력
^ XOR 대응 비트가 서로 다를 때 1을 출력
<< left shift 지정된 수만큼 비트들을 왼쪽으로 이동시킴
>> right shift 지정된 수만큼 비트들을 오른쪽으로 이동시킴
~ 1의 보수 0비트는 1로, 1비트는 0으로 변환

 

 

 

 

'소프트웨어 > C++' 카테고리의 다른 글

[C++] 객체지향 언어  (0) 2021.12.01
[C++] 객체지향의 개념  (0) 2021.12.01
[C++] 데이터 타입  (0) 2020.04.25

+ Recent posts