연산자

정의

  • 자료(값, 데이터)를 대상으로 각종 연산을 수행하도록 지시하는 기호
  • 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