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;
이 코드에서 a와 b를 출력하면 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 |