본문 바로가기
컴퓨터 프로그래밍/c 언어 (c programming language)

C 언어 - 연산자(operator)

by JaeBaek 2020. 9. 26.

Operater (Pixabay)

연산자

수식은 연산자(ex 수식) 와 피연산자(ex 숫자)로 구성된 연산식을 말합니다. 다양한 연산자를 통해서 보다 더 다양한 수식을 표현하거나 논리적인 식을 만들 수 있습니다.

 

■ 산술 연산자

산술 연산자의 종류 사용 예 의미 연산 결과
+ 1+1 더하기 2%
- 3-1 빼기 2
* 3*2 곱하기 6
/ 3/2 나누기 1
% 5/3 나머지 구하기 2

 

■ 증감 연산자

증감 연산자는 변수의 값을 1만큼 증가 혹은 감소시키기 위해서 사용됩니다. 즉, 증감 연산자는 반드시 변수에만 사용해야 하며, 상수나 수식에는 사용할 수 없습니다.

증감 연산자의 종류 사용 예 의미
전위형 ++a 1만큼 증가된 변수 a의 값
--a 1만큼 감소된 변수 a의 값
후위형 a++ 증가되기 전 변수 a의 값
a-- 감소되기 전 변수 a의 값

위와 같은 증감연산자는 2줄의 코드를 1줄로 줄여주는 역할을 합니다.

 

■ 관계 연산자

관계 연산자는 2개의 피연산자 값을 비교하여 참 또는 거짓을 결과로 돌려줍니다. c 언어에서 참이란 0이 아닌 값을 이미하고 거짓이란 0 값을 의미합니다. 

관계 연산자의 종류 사용 예 의미
> a>b a가 b보다 크면 참
>= a>=b a가 b보다 크거나 같으면 참
< a<b a가 b보다 작으면 참
<= a<=b a가 b보다 같거나 작으면 참
== a==b a가 b와 같으면 참
!= a!=b a가 b와 같지 않으면 참

 

■ 논리 연산자

논리 연산자도 관계 연산자 처럼 피연산자 값을 평가하여 참 또는 거짓을 결과로 반환합니다. 어떠한 조건을 검사할 때 사용하는 연산자입니다.

논리 연산자의 종류 사용 예 의미
&& a&&b a와 b 모두 참인 경우만 참
|| a||b a와 b 둘 중 하나라도 참인 경우 참
! !a a가 참인 경우 거짓, 거짓인 경우 참

 

■ 비트 연산자

비트 연산자는 2진수로 표현된 정수를 비트 단위로 취급하는 것을 말합니다. 일반적으로는 많이 사용하지 않고 프로그램 개발, 통신 프로그램같은 경우에 많이 사용하니 참고로 알아놓으시면 될 것 같습니다.

비트 논리 연산자의 종류 사용 예 의미
& 5&7 101과 111을 비트 단위로 AND 연산
| 5|7 101과 111을 비트 단위로 OR 연산
^ 5^7 101과 111을 비트 단위로 XOR 연산 (둘다 아닌 경우)

 

■ (복합)대입 연산자

대입 연산자는 좌변 우변값을 지정해주는 연산자로 너무나 쉬운 '=' 값 입니다. 좌변에는 변수가 위치하고 우변에는 값이 지정이 됩니다. 

 

복합대입연산자

복합 대입 연산자의 종류 의미 복합 대입 연산자의 종류 의미
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 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

 

■ 조건 연산자

조건 연산자는 유일한 삼항 연산자(연산자가 3개 들어가는 수식)로 세 개의 피연산자를 가지고 코드를 간결하게 만드는 기능을 합니다. 

조건 연산자 사용 형삭 | 피연산자1 ? 피연산자2 : 피연산자3

다음 구문에 대한 해석은 피연산자1이 참이면 피연산자2가 참으로 결과가 되며, 거짓인 경우 피연산자3이 결과가 되는 것을 말합니다. 보통 나중에 배울 if문과 비슷한 형식이므로 간단하게 만들 때 주로 사용을 하므로 기억을 하시는게 중요합니다. 

 

■ 연산자 우선 순위

코드를 작성하다보면 여러 가지 연산자를 사용하게 됩니다. 그럴 경우에 어떠한 연산자가 우선 순위로 계산이 되어야 하는지 알 필요가 있습니다.

우선 순위 연산자 종류 연산자 결합 방향
1 1차 연산자 ( ) [ ] ->
2 단항 연산자 ++ -- ~! * & sizeof (type)
3 산술 연산자 * / %
4 + -
5 비트 시프트 연산자 << >>
6 관계 연산자 < <= > >=

 

Exercise

정수값 10,20,30을 각 변수에 할당한 후, 조건 연산자를 사용하여 최대값을 구하는 프로그램을 작성하라.

#include <stdio.h>

int main(void)
{
int a=10;
int b=20;
int c=30;
int max=(a>b)?(a>c?a:c):(b>c?b:c);
printf("max is %d",max);
 } 
max is 30

 

'컴퓨터 프로그래밍 > c 언어 (c programming language)' 카테고리의 다른 글

C 언어 - 조건문  (0) 2020.09.26
C 언어 - 표준 입출력  (0) 2020.09.26
C 언어 - 변수와 자료형  (0) 2020.09.26
C 언어 기초  (0) 2020.09.26
c 언어 개요  (0) 2020.09.26

댓글