오늘은 C++ 문법중 기본연산자들을 공부했습니다.
책은 C++하이킹을 보고 공부했습니다.
1. 산술연산자
피연산자 개수에 따라 단항연산자 / 이항연산자로 나눌 수 있다.
단항은 +3같은 피연산자가 하나이고 이항은 3+2 같이 피연산자가 2개인 연산자를 뜻한다.
산술연산자의 우선순위
1. 괄호안에 있는 연산자가 가장 먼저 계산
2. *(곱셈) , /(몫을 구하는 나눗셈) , %(나머지를 구하는 나눗셈)연산자가 다음으로 계산되고 이런 연산자가 여러개 있을 경우 왼쪽->오른쪽으로 연산된다.
3. 그리고 마지막으로 +,- 연산이 실행
산술연산자이용하기
#include<iostream>
using namespace std;
void main() {
int a = 8, b = 3;
cout << a << "+" << b << "=" << a + b << "\n";
cout << a << "-" << b << "=" << a - b << "\n";
cout << a << "*" << b << "=" << a * b << "\n";
cout << a << "/" << b << "=" << a / b << "\n";
cout << a << "%" << b << "=" << a % b << "\n";
}
결과

나누기 연산자 사용하기
#include<iostream>
using namespace std;
void main() {
cout << 2 / 4 << "\n";
cout << 2 / 4.0 << "\n";
cout << 2.0 / 4.0 << "\n";
cout << 2 % 4 << "\n";
//cout<<2.0%4.0<<"\n";
}
나누기 연산자를 사용할 때 정수형이면 정수 실수면 실수로 나눠야한다.
그리고 나머지 연산자를 실수형데이터를 피연산자로 사용하면 컴파일 에러가 발생한다.

관계연산자 사용하기
#include<iostream>
using namespace std;
void main() {
int a = 3, b = 5, c = 3;
bool isture;
isture = a > b;
cout << "a>b는" << isture << "\n";
isture = a * b < b + c;
cout << "a*b<b+c는" << isture << "\n";
isture =a*b == b * c;
cout << "a*b=b*c는" << isture << "\n";
}

논리값에 논리 연산자 사용하기
#include<iostream>
using namespace std;
void main() {
bool istrue;
istrue = true && true;
cout << "true&&true=" << istrue << "\n";
istrue = true && false;
cout << "true&&false=" << istrue << "\n";
istrue = false || false;
cout << "false||false=" << istrue << "\n";
istrue = true || false;
cout << "true||false=" << istrue << "\n";
istrue = !true;
cout << "!true=" << istrue << "\n";
}

관계 연산자와 논리 연산자 혼용해서 사용하기
#include<iostream>
using namespace std;
void main() {
int num = 85;
bool istrue;
istrue = !num == 70;
cout << "!num==70=" << istrue << "\n";
istrue = !(num == 70);
cout << "!(num==70)=" << istrue << "\n";
istrue = num >= 80 && num < 90;
cout << "num>=80&&num<90=" << istrue << "\n";
num = 60;
istrue = num >= 80 && num < 90;
cout << "num>=80&&num<90=" << istrue << "\n";
istrue = num >= 90 || num < 80;
cout << "num>=90||num<80=" << istrue << "\n";
num = 85;
istrue = num >= 90 || num < 80;
cout << "num>=90||num<80=" << istrue << "\n";
}
결과

증감연산자
전위 / 후위 가 있다.
전위연산자는 값이 먼저 증가하고 값이 대입되고 후위 연산자는 값이 대입되고 값이 증가한다.
예제로 확인해보자
증가 연산자 사용하기
#include<iostream>
using namespace std;
void main() {
int a = 10, b = 10;
cout << "before======>a:" << a << "b:" << b << "\n";
cout << "a++======>a:" << a++ << "\n";
cout << "++b======>b:" << ++b << "\n";
cout << "after======>a:" << a << "b:" << b << "\n";
}
결과

다양한 형태의 대입연산자 사용하기
#include<iostream>
using namespace std;
void main() {
int a, b = 2;
a = 10; a += b; cout << "a=" << a << "\n";
a = 10; a -= b; cout << "a=" << a << "\n";
a = 10; a *= b; cout << "a=" << a << "\n";
a = 10; a /= b; cout << "a=" << a << "\n";
a = 10; a %= b; cout << "a=" << a << "\n";
}

비트연산자의 종류
& = 비트논리곱(AND)
| = 비트논리합(OR)
^ = 비트 배타적 논리합(XOR)
<< = 왼쪽이동
>> = 오른쪽이동
~ = 1의 보수
비트 연산자 사용하기
#include<iostream>
using namespace std;
void main() {
short x = 10, y = 6;
cout << "x&y:" << (x & y) << "\n";
cout << "x|y:" << (x | y) << "\n";
cout << "x^y:" << (x ^ y) << "\n";
cout << "~x:" << (~x) << "\n";
}
결과창

시프트연산자 사용하기
#include<iostream>
using namespace std;
void main() {
short int x = 15;
cout << "x<<2:" << (x << 2) << "\n";
cout << "x>>2:" << (x >> 2) << "\n";
}
결과

조건연산자를 이용해서 최댓값 구하기
#include<iostream>
using namespace std;
void main() {
int a, b, c;
int max;
cout << " 세 수를 입력하세요";
cin >> a >> b >> c;
max=(a > b) ? a : b;
max = (max > c) ? max : c;
cout << "가장 큰 수는 :" << max << "\n";
}
결과창

sizeof연산자로 메모리크기 구하기
#include<iostream>
using namespace std;
void main() {
int a = 10;
float b = 3.5f;
char c = 'A';
cout << "\n<====== Date Type ======>";
cout << "\n int size : " << sizeof(int);
cout << "\n long size : " << sizeof(long);
cout << "\n float size : " << sizeof(float);
cout << "\n double size : " << sizeof(double);
cout << "\n char size : " << sizeof(char);
cout << "\n<====== Variable ======>";
cout << "\n int size : " << sizeof(a);
cout << "\n float size : " << sizeof(b);
cout << "\n char size : " << sizeof(c);
cout << "\n<====== Constant ======>";
cout << "\n int size : " << sizeof(23);
cout << "\n double size : " << sizeof(3.5);
cout << "\n float size : " << sizeof(3.5f);
cout << "\n char size : " << sizeof('A');
cout << "\n String size : " << sizeof("Apple") << "\n";
}
결과창

%연산자를 사용하기 위해강제 형변환하기
#include<iostream>
using namespace std;
void main() {
double a = 1.0;
double b = 2.0;
// int res01=a%b;
int res01 = (int)a % (int)b;
cout << a << "%" << b << "="<<res01 << endl;
}

형 변환을 해주지않으면 컴파일에러가난다
원하는 결과를 얻기 위해 강제 형 변환하기
#include<iostream>
using namespace std;
void main() {
int c = 1;
int d = 2;
double res02;
res02 = c / d;
cout << c << "/" << d << "=" << res02 << endl;
res02 = (double)c / (double)d;
cout << c << "/" << d << "=" << res02 << endl;
}
결과창

이상으로 기본연산자 공부를 마치겠습니다!
'C#' 카테고리의 다른 글
| [C++]C++문법 공부(while문/do-while문/break문/continue문/goto문/무한루프) (0) | 2026.01.23 |
|---|---|
| [C++]C++문법공부 제어문-선택문(if/if-else-/switch)반복문(for문/다중for문) -1 (2) | 2026.01.20 |
| [C++]C++문법 공부하기 자료형의이해 (정수 / 실수 ) / 자료형의 종류 ( 실수 / 문자 / 확장특수문자 / 문자열형 / 논리형) (0) | 2026.01.15 |
| [C++문법공부]C++ 문법(헤더파일 iostream / std 네임스페이스 / cout 출력문 / 출력문에서 엔터키(endl,\n) 배우기-1 (0) | 2026.01.13 |
| [자료구조/C++]백준 10828 스택 풀기 (0) | 2026.01.09 |