컴퓨터 프로그래밍/C

C언어 연산자 우선순위

나노콛 2019. 7. 18. 13:51
#include <stdio.h>

int main()
{
 printf("result : %d \n",10 + 20 * 5 - 5);
 printf("result : %d \n",(10 + 20) * 5 - 5);

 return 0;
{

위의 소스 코드를 실행하면 결과가 어떻게 나올까요?
기본적인 사칙연산의 순서대로 나오게 됩니다.

 

printf("result : %d \n",10 + 20 * 5 - 5); 이것은 곱하기 먼저 계산이 되고 왼쪽부터 오른쪽으로 계산됩니다.
printf("result : %d \n",(10 + 20) * 5 - 5); 이것은 괄호 안의 내용을 먼저 하고 곱하기 빼기 순으로 됩니다.

 

연산자의 우선순위

1

primary

 ( )

[ ]

.

->

     

오른쪽

2

단항

*

&

!

++

-- 

(datatype)

sizeof

왼쪽

3

승법

*

%

/

       

오른쪽

4

가법

+

-

         

오른쪽

5

관계

<

>

<=

>=

     

오른쪽

6

등가

==

!=

         

오른쪽

7

논리곱

&&

           

오른쪽

8

논리합

||

           

오른쪽

9

대입

=

+=

-=

*=

%=

/=

 

왼쪽

1순위가 제일 빠른 우선순위를 가집니다.
마지막으로 대입 연산자입니다.

그리고 단항과 대입 연산자만
같은 우선순위가 만났을때 연산 방향이 왼쪽이라는 것을 기억하시기 바랍니다.

 

include <stdio.h>

int main()
{
 int a = 6;
 int b = 4;

 printf("덧셈 : %d",a+b);
 printf("뺄셈 : %d",a-b);
 printf("곱셈 : %d",a*b);
 printf("나눗셈 : %d",a/b);
 printf("나머지 : %d",a%b);

 return 0;
}

 

암산으로 해도 대충 답이 나올 얘기입니다.
그러나 %이 연산자는 생소할 수도 있는데요
나머지를 구하는 연산자입니다.
나머지를 구하려면 일단 나눈 후 나오는 나머지를 얘기하고요

위의 소스에서는 6을 4로 나누면 몫은 1이고 나머지는 2입니다. 거기서 2가 % 연산자로 계산되는 값입니다.

728x90