posted by 구로보루 2017. 7. 27. 11:49

 C언어를 공부하면서 처음 C를 배웠을 경우 for문에서 사용할 때

for(int i=0; i<10 ; i++)

이렇게 사용하면서 익숙해 졌다.

 

 그런데 학교에서 학년도 올라가고 다시 C를 공부하는데

for(int i=0; i<10; ++i)

이렇게 사용하는 경우를 많이 보게 되면서 증감식에 전위연산과 후위연산의 차이점에 대해 알아보게 되었다.

 

 우선 전위연산의 경우

int a = 1;

int b = ++a;

이 코드에서 ab를 출력하면 a = 2, b = 2가 된다.

 

 후위연산의 경우는

int a = 1;

int b = a++;

이 코드에서 a의 값을 b에 추가하고 a를 증가시키게 되어 a = 2, b = 1이 된다.

 

 후위 연산은 현재 코드를 실행하고 값을 증가시켜주기 때문에 그 값을 저장할 공간이 필요하다. 코드로 풀어보면

const int t = i;

i = i + 1;

return t;

로 풀이되어 t라는 저장공간이 필요하게 된다.

 

 전위 연산을 코드로 풀어주면

i = i + 1;

return i;

로 풀이된다.

 

 이렇게 상대적으로 전위연산이 후위연산보다 낭비가 적으며 for문의 반복횟수가 많을수록 전위연산의 경우가 더 효율적으로 돌아가게 된다.

 

 그러나 이제는 컴파일러가 발전해서 for문과 같이 그 사본이 사용되지 않는 경우에는 더 빠른 방법인 전위연산으로 바꿔서 실행한다고 하니 이제는 특별히 차이가 없다고 한다.

'공부 > C' 카테고리의 다른 글

system("cls") / SetConsoleCursorPosition  (0) 2017.08.27
글자색 설정하기  (1) 2017.08.27
for / while  (0) 2017.07.20
선행처리기  (0) 2017.07.19
#define / const  (0) 2017.07.19