연산자
정의
- 자료(값, 데이터)를 대상으로 각종 연산을 수행하도록 지시하는 기호
- C 언어는 다양한 종류의 연산자를 제공한다.
연산자와 피연산자
- 피연산자 : 연산자에 의해 계산이 되는 자료(값이나 데이터)
대분류에 따른 종류
| 구분 |
연산자 |
| 산술 연산자 |
+ - * / % ++ – |
| 관계 연산자 |
> < >= <= == != |
| 논리 연산자 |
&& || ! |
| 대입 연산자 |
= += -= *= /= %= «= »= &= |= ^= |
| 조건 연산자 |
? : |
| 비트 연산자 |
& | ^ ~ « » |
| 기타 연산자 |
sizeof() , & * 형변환 |
전체 연산자 설명
| 구분 |
연산자 |
명칭 |
예시 |
비고 |
| 산술 |
+ |
더하기 |
i + 5 |
이항 연산자 |
| 산술 |
- |
빼기 |
i - 5 |
이항 연산자 |
| 산술 |
* |
곱하기 |
i * 5 |
이항 연산자 |
| 산술 |
/ |
나누기 |
i / 5 |
정수형끼리 연산 시 결과는 정수 |
| 산술 |
% |
나눗셈의 나머지 |
i % 5 |
정수형에만 사용할 수 있음 |
| 산술 |
+ (부호) |
양수 부호 |
int a = +5; |
단항 연산자 |
| 산술 |
- (부호) |
음수 부호 |
int a = -5; |
단항 연산자 |
| 산술 |
++ |
1 증가 (증감 연산자) |
++i, i++ |
전위/후위 위치에 따라 실행 시점 다름 |
| 산술 |
– |
1 감소 (증감 연산자) |
–i, i– |
전위/후위 위치에 따라 실행 시점 다름 |
| 관계 |
> |
크다 (초과) |
i > 5 |
참(1) 또는 거짓(0) 반환 |
| 관계 |
< |
작다 (미만) |
i < 5 |
참(1) 또는 거짓(0) 반환 |
| 관계 |
>= |
크거나 같다 (이상) |
i >= 5 |
참(1) 또는 거짓(0) 반환 |
| 관계 |
<= |
작거나 같다 (이하) |
i <= 5 |
참(1) 또는 거짓(0) 반환 |
| 관계 |
== |
같다 |
i == 5 |
참(1) 또는 거짓(0) 반환 |
| 관계 |
!= |
같지 않다 |
i != 5 |
참(1) 또는 거짓(0) 반환 |
| 논리 |
&& |
논리 AND |
(i > 0) && (j < 5) |
두 조건 모두 참일 때 참 반환 |
| 논리 |
|| |
논리 OR |
(i > 0)||(j <5) |
두 조건 중 하나라도 참이면 참 반환 |
| 논리 |
! |
논리 NOT |
!is_true |
조건의 참/거짓을 반전 |
| 대입 |
= |
대입 |
a = 10 |
우변의 값을 좌변에 대입 |
| 대입 |
+= |
더한 후 대입 |
a += 5 |
a = a + 5와 동일 |
| 대입 |
-= |
뺀 후 대입 |
a -= 5 |
a = a - 5와 동일 |
| 대입 |
*= |
곱한 후 대입 |
a *= 5 |
a = a * 5와 동일 |
| 대입 |
/= |
나눈 후 대입 |
a /= 5 |
a = a / 5와 동일 |
| 대입 |
%= |
나머지 대입 |
a %= 5 |
a = a % 5와 동일 (정수형만) |
| 대입 |
«= |
좌측 시프트 후 대입 |
a «= 2 |
a = a « 2와 동일 |
| 대입 |
»= |
우측 시프트 후 대입 |
a »= 2 |
a = a » 2와 동일 |
| 대입 |
&= |
비트 AND 후 대입 |
a &= mask |
a = a & mask와 동일 |
| 대입 |
|= |
비트 OR 후 대입 |
a |= mask |
a = a | mask와 동일 |
| 대입 |
^= |
비트 XOR 후 대입 |
a ^= key |
a = a ^ key와 동일 |
| 조건 |
? : |
조건 연산자 |
(i > 0) ? 1 : 0 |
유일한 삼항 연산자 |
| 비트 |
& |
비트 AND |
a & 0x0F |
두 비트가 모두 1일 때 1 |
| 비트 |
| |
비트 OR |
a | 0x0F |
두 비트 중 하나라도 1이면 1 |
| 비트 |
^ |
비트 XOR |
a ^ 0xFF |
두 비트가 다를 때 1 |
| 비트 |
~ |
비트 NOT (1의 보수) |
~a |
모든 비트를 반전 (단항) |
| 비트 |
« |
좌측 시프트 |
a « 2 |
왼쪽으로 비트 이동 (곱셈 효과) |
| 비트 |
» |
우측 시프트 |
a » 2 |
오른쪽으로 비트 이동 (나눗셈 효과) |
| 기타 |
sizeof() |
자료형/변수의 크기 |
sizeof(int) |
메모리 크기(바이트) 반환 |
| 기타 |
, |
콤마 연산자 |
expr1, expr2 |
여러 식을 순차적으로 실행 (마지막 값 반환) |
| 기타 |
& |
주소 연산자 |
&variable |
변수의 메모리 주소 반환 |
| 기타 |
* |
역참조 연산자 |
*ptr |
포인터가 가리키는 값(내용) 반환 |
| 기타 |
형변환 |
명시적 형 변환 |
(int)3.14 |
자료형을 강제로 변환 (Cast) |
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments