본문 바로가기

Progremming Study/C언어

C언어 기초 _ 연산자 (산술, 대입, 증감, 비교, 논리)

728x90

* 산술 연산자

 

  • +   :   왼쪽의 피연산자에서 오른쪽의 피연산자를 더함
  • -    :   왼쪽의 피연산자에서 오른쪽의 피연산자를 뺌
  • *    :   왼쪽의 피연산자에서 오른쪽의 피연산자를 곱함
  • /    :   왼쪽의 피연산자를 오른쪽의 피연산자로 나눔 (정수 / 정수 = 몫)
  • %  :   왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 나머지를 반환

 

 

---------------------------------------------------------------------------

 

 

ex)

int num1, num2, num3;
num1 =9 + 8 / 2 * 4;
num2=8 - 12 * (2 + 2) / 8 % 2;
num3=1 % 3 * (1 + 3) * (12 / 6) % 10;

printf("%d %d %d\n", num1, num2, num3);

 

=>  

25  8  8

 


 

* 대입 연산자

 

  • =   :   왼쪽의 피연산자에 오른쪽의 피 연산자를 대입

 

 

 

* 복합 대입 연산자

 

  • +=    :   왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후, 그 결괏값을 왼쪽의 피연산자에 대입
  •  -=    :   왼쪽의 피연산자에 오른쪽의 피연산자를 뺀 후, 그 결괏값을 왼쪽의 피연산자에 대입
  • *=     :    왼쪽의 피연산자에 오른쪽의 피연산자를 곱한 후, 그 결괏값을 왼쪽의 피연산자에 대입
  • /=     :   왼쪾의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 결괏값을 왼쪽의 피연산자에 대입
  • %=   :   왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 왼쪽의 피연산자에 대입

ex)-----------------------------------------------

int num = 7;
num += 5;      //아래와 같은 연산
num = num + 5;
printf("num의 값: %d", num);

 

=>

num의 값: 17

 


* 증감 연산자 

 

=> 다른 연산자들과는 다르게 피연산자가 한 개

 

  • ++num   :   ( 전위 증가 연산자 )   피연산자의 값을 1 증가시킨 후, 연산을 진행
  • num++   :   ( 후위 증가 연산자 )   연산을 먼저 진행하고 나서 피연산자의 값을 1 증가
  • --num     :   ( 전위 감소 연산자 )   피연산자의 값을 1 감소 시킨 후 연산을 진행
  • num--     :   ( 후위 감소 연산자 )   연산을 먼저 진행하고 나서 피연산자의 값을 1 감소

 

---------------------------------------------------------------------------

 

 

ex)

int a = 5, b = 6, c = 10, d;

d = ++a * b--;
printf("a=%d b=%d d=%d\n", a, b, d);

d = a++ + ++c - b--;
printf("a=%d b=%d c=%d d=%d\n", a, b, c, d);

 

=>

a = 6 b = 5 d = 36
a = 7 b = 4 c = 11 d = 12

 


 

* 비교 연산자

 

=> 연산의 결과가 참일 경우 1, 거짓일 경우 0을 반환

 

  • ==   :    왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 1을 반환
  • !=    :    왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 1을 반환
  • >     :    왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 1을 반환
  • >=   :    왼쪽의 피연산자가 오른쪽의 피연산자보다 같거나 크면 1을 반환
  • <     :    왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 1을 반환
  • <=   :    왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 크면 1을 반환

 

---------------------------------------------------------------------------

 

 

ex)

int num1 = 10, num2 = 20, num3 = 4;
int num4 = 13, num5 = 4;

printf("%d\n", num1 == num2);
printf("%d\n", num4 != num1);
printf("%d\n", num4 > num2);
printf("%d\n", num5 >= num3);
printf("%d\n", num1 < num4);
printf("%d\n", num3 <= num1);

 

=>

0
1
0
1
1
1

 

 


 

* 논리 연산자

 

  • &&   :   ( 논리 & 연산 ) 논리식이 모두 참이면 1을 반환, 둘 중 하나라도 거짓이면 0을 반환 

                   거짓 && 거짓       = 0                   

                    참  && 거짓        = 0

                   거짓 && 참          = 0

                     참  && 참           = 1

 

  •  ||     :   ( 논리 OR 연산 ) 논리식이 둘 중 하나라도 참이면 1을 반환

                  거짓 || 거짓        = 0

                   참   || 거짓         = 1

                  거짓 ||  참           = 1

                   참   ||  참           = 1

 

  •  !     :    ( 논리 NOT 연산 ) 참이면 거짓, 거짓이면 참으로 반전

                  논리 NOT 연산의 경우, 피연산자가 한 개만 존재함

 

 

 

 

 

 

 

728x90