C언어(2020년)

18. 연산자 우선순위

리더2333 2020. 11. 3. 14:10
반응형

연산자 우선순위 표

연산자의 대해 먼저 하나씩 알아본 후에

연산자 우선순위를 다루어야 할까 고민도 했지만,



먼저 전체를 보여주고, 각각의 연산자에 대해 하나씩 알아가 보는것도 좋겠다 싶어서

먼저 연산자의 우선순위 를 언급하고자 한다.

연산자 우선순위란?

 

int a = 10;

int b = 20;

int c = 30;

int total = a + b + c;

가감 연산자 + 의 우선순위는 대입연산자 = 의 우선순위 보다 먼저라는 것이다.

또한 + 연산자와 = 연산자는 오른쪽에서 왼쪽으로 결합된다.

 

int total = a + b + c;

int total = a +50; 

int total = 60;

 

이렇게 처리 된다는 것이다.

+ 먼저 처리하고, = 을 처리 한다는 뜻이고, 

오른쪽에서 왼쪽으로 결합된다는 뜻이다.

 

 

 

다른 예제를 보자

int total = (a + b) + c;

 

여기에서는 ( ) 연산자가 + 보다 높기 때문에

int total = 30 + c;

int totla = 60;

 

이렇게 처리 된다는 뜻이다.

 

 

 

예제1)

int a = 10;

int b= 20;

int c = 30;

int total = a * 2 + b << 3 + c | 5;

결과 : 85

 

예제2)

int total = (a * 2) + (b << 3) + (c | 5);

결과 : 211

 

+ 연산자가 << 연산자나 | 연산자보다 우선되고

( ) 연산자가 + 연산자 보다 우선 되므로

위 두 예제는 결과가 다르다.

 

아무튼 연산자에 대해서는 차차 알아보기로 하고,

연산자의 우선순위가 있고, 또한 결합순서가 어떠한 경우에는 오른쪽에서 왼쪽으로

어떠한 경우에는 왼쪽에서 오른쪽으로 결합하는구나 생각하면 될듯 하다.

 

연산자의 우선순위를 기억하기 보다.

( ) 의 우선순위가 가장 높으므로

예제2) 번 처럼 ( ) 를 사용하여 코드를 정확하게 해 주는 것이 필요 하겠다.

반응형

'C언어(2020년)' 카테고리의 다른 글

20. bool 자료형  (0) 2020.11.03
19. 연산자  (0) 2020.11.03
17. 포인터  (1) 2020.11.03
16. RAM 에 대한 고찰  (0) 2020.11.03
15. 주석  (0) 2020.11.03