연산자의 종류
구분 |
종류 |
대입 연산자 |
= |
산술 연산자 |
+ - * / % |
복합 대입 연산자 |
+= -= *= /= %= >>= <<= &= |= ^= |
관계 연산자 |
> < >= <= == != |
논리 연산자 |
&& || ! |
조건 연산자 |
?: |
증감 연산자 |
++ -- |
비트 연산자 |
& | ^ ~ << >> |
형변환 연산자 |
(자료형) |
콤마 연산자 | , |
주소 연산자 | & |
sizeof연산자 | sizeof(피연산자) |
1. 대입연산자
변수명 = 값 오른쪽에 있는 값을 왼쪽 변수에 대입
변수명 = 변수 오른쪽 변수에 저장된 값을 왼쪽 변수에 대입
변수명 = 수식 오른쪽 수식을 평가한 결과 값을 왼쪽 변수에 대입
Ex) x = 5 (5를 변수x에 대입)
y = x (x변수에 저장된 값을 왼쪽 변수에 대입)
z = 3 + 5 (3 + 5 = 8을 z에 대입)
2. 산술연산자
+(덧셈) -(뺄셈) *(곱셈) /(나눗셈-몫) %(나눗셈-나머지)
Ex) 10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3
10 % 3 = 1
3. 복합 대입 연산자
Ex) a += b -> a = a + b
a -= b -> a = a - b
a *= b -> a = a * b
a /= b -> a = a / b
a %= b -> a = a % b
4. 관계 연산자
Ex) a > b -> a는 b보다 큰가? 옮다면 참(1) / 아니라면 거짓(0)
a >= b -> a는 b보다 크거나 같은가? 옮다면 참(1) / 아니라면 거짓(0)
a < b -> a는 b보다 작은가? 옮다면 참(1) / 아니라면 거짓(0)
a <= b -> a는 b보다 작거나 같은가? 옮다면 참(1) / 아니라면 거짓(0)
a == b -> a는 b보다 같은가? 옮다면 참(1) / 아니라면 거짓(0)
a != b -> a는 b보다 같지않은가? 옮다면 참(1) / 아니라면 거짓(0)
5. 논리 연산자
참은 1, 거짓은 0 / 1이 아닌 숫자라면 다 거짓이라 생각해도 된다
Ex) a && b (a AND b) -> 둘다 참인가? 옳다면 참(1) / 아니라면 거짓(0)
a || b (a OR b) -> 둘중 하나라도 참인가? 옳다면 참(1) / 아니라면 거짓(0)
6. 조건 연산자
Ex) a = b > c ? 2 : 3 -> b > c? 옳다면 2 / 아니라면 3
a = b && c ? 5 : 1 -> b && c? 옳다면 5 / 아니라면 1
7. 증감 연산자
a++ a의 값을 1증가
++a a의 값을 1증가
a-- a의 값을 1감소
--a a의 값을 1감소
뭐가 다른거죠??! 예시를 통해 알아보겠습니다
Ex) a = b++ b의 값을 a에 대입 후에 1증가
a = ++b b의 값을 1증가 후에 a에 대입
a = b-- b의 값을 a에 대입 후에 1감소
a = --b b의 값을 1감소 후에 a에 대입
8. 비트 논리 연산자
&(AND) |(OR) ^(XOR) ~(NOT)
a(비트 값) |
b(비트 값) |
a & b |
a | b |
a ^ b |
~a |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
<<(왼쪽 비트 이동 연산자) >>(오른쪽 비트 이동 연산자)
Ex) 15<< 2 -> 이진수1111을 111100으로 만듦. 따라서 15 * 2^2 = 60
10 << 3 -> 이진수1010을 1010000으로 만듦. 따라서 10 * 2^3 = 80
15 >> 2 -> 이진수1111을 11로 만듦. 따라서 3
10 >> 3 -> 이진수1010을 1로 만듦. 따라서 1
9. 형 변환 연산자
Ex) (double)3 정수3을 실수 4.0으로 변환
(int)3.14 실수3.14를 정수 3으로 변환
10. sizeof 연산자
기억공간의 크기(바이트 수)를 얻을수 있는 연산자이다.
'C언어' 카테고리의 다른 글
[C언어] 조건문(if문과 switch문) / 반목문(for문, while문) / break와 continue (0) | 2018.12.23 |
---|---|
[C언어] 변수선언과 출력함수(printf) 및 입력함수(scanf) / 주석(설명)다는법 (0) | 2018.12.21 |
[C언어] 프로그램 작성을 위한 VisualStudio2017설치(콘솔종료, scanf문제 해결) (0) | 2018.12.21 |