[C언어] 연산자
연산자
정의
- 자료(값, 데이터)를 대상으로 각종 연산을 수행하도록 지시하는 기호
- 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 프로그래밍 강의 (방송통신대 - 이병래)
댓글 남기기