iOS/정보처리기사

[정보처리기사] C언어 - 연산자 우선순위

Chafle 2022. 5. 23. 19:00
반응형

연산자가 궁금하시다면

https://accompani-i.tistory.com/185

 

[정보처리기사] C언어 - 산술연산자(a++, ++a, a+= 등)

산술연산자 종류 이항 연산자 단항 연산자 대입 연산자 이항 연산자 항이 2개다 a + b같이 항이 2개로 구성된 연산자 종류: + - * / % +는 덧셈 연산 -는 뺄셈 연산 *는 곱셈 연산입니다. /는 우리가 아

accompani-i.tistory.com

먼저 학습 하고 오시길 권해드립니다.

 

 


 

산술 연산자의 종류

 

 

우선순위 종류
높음














낮음
() 괄호 연산자
++, --, ~, ! 단항 연산자
*, /, % 산술 연산자
+, - 산술 연산자
<<, >> 비트 연산자
<, <=, >, >= 비교 연산자
==, != 관계 연산자
&, ^, | 비트 연산자
&&, || 논리 연산자
=, +=, -=, *=, /=, %= 대입 연산자

 

 


 

연산자 우선순위 예시

 

 

 

Q1

 

 

int a = 3;

int b = 4;

int c = 5;

int d = 6;

 

 

a*b+c>=d&&d/a-b!=0 =

 

 

해설

 

※ 편의상 연산자 우선순위로 괄호를 쳐서 식 수행

( ( ( (a*b)+c) >= d)  && ( ( (d/a)-b) != 0) )  = 답

 

 

1. 연산자 우선순위가 가장 높은

a*b, d/a부터

3*4, 6/3

 

2. a*b+c, d/a-b

12+5, 2-4

 

3. 비교연산이 더 높으니까 a*b+c >= d/a-b

17>=6 

참이니까 1

 

4. d/a-b != 0 

-2 ≠ 0

같지 않으니까 참이므로 1

 

5. a*b+c>=d  &&  d/a-b!=0 

1 && 1

&&은 두개 다 참이여야 참

참 && 참이니까 참이므로 1

 

 


 

 

 

Q2.

 

int a = 3;

int b = 4;

int c = 5;

int d = 6;

 

 d%b + ++a*c-- =

 

 

 

해설

 

※ 편의상 연산자 우선순위로 괄호를 쳐서 식 수행

 

((d%b)  + (++a * c--) ) = 답

 

1. 연산자 우선순위는 ++a와 c--가 제일 높다

++a = 먼저 1 증가시키고 식 수행, c-- 식수행하고 1감소 시킨다

a를  3->4로 증가시키고 식 수행

 

2. %와 *가 그다음으로 우선순위가 높다

 d%b, ++a*c--

6%4, 4*5

6%4는 나머지를 구하는 것이므로 2

4*5는 20

 

3. d%b + ++a*c--

2 + 20 이므로 답은 22

 

이후에 c--로 c가 5->4

결과값에는 영향 안미침

 


 

반응형

 

 

Q3

 

#include<stdio.h>

int main*() {

int a = 5, b = 5;

a*=3 + b++;

printf("%d %d", a, b);

return 0;

}

 

 

해설

 

※ 편의상 연산자 우선순위로 괄호를 쳐서 식 수행

( a *= (3 + b++) ) = 답 

 

1. 연산자 우선순위가 가장 낮은 것은 *=인 대입연산자이므로

3+b++부터 진행 (b++는 증가 시키기 전에 식 먼저 수행)

3+5 = 8

 

2. 나머지 a*= (3+b++)진행

a* = 8

a=a*8

a=5*8 이므로 a값에 40

식을 수행했으니 b++해서 b값은 6

 

40, 6으로 출력됩니다.

 

반응형