본문 바로가기
C 언어 프로그래밍/연산자

연산자

by 프밍샘 2020. 6. 15.

연산자의 종류

 

산술 연산자

연산자 '예'의 의미
+ a+b a 더하기 b
- a-b a 빼기 b, 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 b가 서로 같다.
!= a !=b a b가 서로 같지 않다.

 

논리 연산자

연산자 의 의미
&& a && b AND, 두 조건을 만족하면 Ture(1)
|| a || b OR, 두 조건 중 한 가지라도 만족하면 True(1)
! ! a

NOT, 값이 True(1)이면 False(0)을 반환하고, False(0)이면 True(1)을 반환

 

비트 연산자

연산자 의 의미
& a & b 비트단위 AND
| a | b 비트단위 OR
^ a ^ b 비트단위 XOR
~ ~ a 비트단위 NOT
<< a << 2 오른쪽에서 왼쪽으로 2비트 이동(빈자리는 0)
>> a >> 2 왼쪽에서 오른쪽으로 2비트 이동(빈자리는 0)

 

대입 연산자

연산자
의 의미
= a = 1 a 1을 대입
+= a += b a=a+b a b를 더한 값을 a에 대입
-= a -= b a=a-b a b를 뺀 값을 a에 대입
*= a *= b a=a*b a b를 곱한 값을 a에 대입
/= a /= b a=a/b a b로 나눈 값을 a에 대입
%= a %=b a=a%b a b로 나눈 나머지를 a에 대입

 

증감 연산자

연산자 의 의미
++ a ++ a값을 1증가
b=++a a의 값을 먼저 증가시키고 b에 대입
b=a++ a의 값을 b에 대입시키고 1증가
-- a -- a값을 1감소
b=--a a의 값을 먼저 감소시키고 b에 대입
b=a-- a의 값을 b에 대입시키고 1감소

 

조건 연산자

 

조건? 문장1 : 문장2

 

조건 연산자는 조건을 만족할 경우 문장1을 처리하고, 만족하지 않을 경우 문장2를 처리하는 연산자입니다.

 

 

sizeof 연산자

 

sizeof(자료형 또는 변수명)

 

자료형이나 변수의 메모리 저장 공간 크기를 Byte로 나타내는 연산자입니다.

 

 

형 변환 연산자

 

형 변환 연산자는 이미 정해진 자료형을 강제로 다른 자료형으로 변경해주는 연산자입니다. 자료형의 강제 형 변환을 참조하길 바랍니다. 

 

2020/06/15 - [C 언어 프로그래밍/자료형과 변수] - 자료형

 

 

연산자의 우선순위

순위 연산자 결합 방향
1 ( ) [ ] . -> 오른쪽
2 ++  --  +(부호)  -(부호)  !  ~(자료형)  *(포인터)  &(주소)  sizeof  new  delete 왼쪽
3 *(곱셈)  /  % 오른쪽
4 +(뎃셈)  -(뺄셈)
5 <<  >>
6 <  <=  >  >=
7 ==  !=
8 &(비트단위 AND)
9 ^
10 |
11 &&
12 ||
13 ?: 왼쪽
14 =  +=  -=  *=  /=  %=  <<=  >>=  &=  ^=  |=
15 , 오른쪽

 

 

 

 

 

연산자 예제

 

(1단계) 두 정수를 입력받아 몫과 나머지를 출력하시오.

 

출력결과

코드

#include <stdio.h>
int main()
{
	int num1, num2;
	
	printf("두 정수를 입력하시오:");
	scanf("%d %d", &num1, &num2);
	
	printf("몫: %d, 나머지: %d", num1/num2, num1%num2);
	
	return 0;	
}

 

 

(2단계) 아래의 출력화면과 같이 두 정수를 입력받아 사칙연산을 수행하는 프로그램을 작성하시오.

 

출력결과

 

코드

 

#include <stdio.h>
int main()
{
	int num1, num2;
	int sum, sub, mul, div;
	
	printf("두 정수를 입력하시오:");
	scanf("%d %d", &num1, &num2);
	
	sum=num1+num2;
	sub=num1-num2;
	mul=num1*num2;
	div=num1/num2;
	
	printf("%d + %d = %d\n", num1, num2, sum);
	printf("%d - %d = %d\n", num1, num2, sub);
	printf("%d * %d = %d\n", num1, num2, mul);
	printf("%d / %d = %d\n", num1, num2, div);
	
	return 0;	
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글