음... 잘 모르겠습니다. 누가 좀 알려주세요.

quexa의 이미지

아래 내용은 오늘 하루종일 이해가 안 되서 시름한 내용입니다.
코드가 옳은가 그른가가 문제가 아니라 왜 이렇게 된 건지가 이해가 안 되서요.

#include <stdio.h>
 
int main()
{
    int n, s, total;
 
    n       = 10;
    total   = 0;
    s       = 0;
 
    while ((s++) < n) {
        total = total + s;
    }
    printf ("%d\ts = %d\n", total, s);
 
    total   = 0;
    s       = 0;
 
    while ((s++)<=n) {
        total = total +s;
    }
    printf ("%d\ts = %d\n", total, s);
}

이 녀석을 컴파일하면, 각각
55 s = 11
66 s = 12
가 나옵니다. s가 각각 1 증가한 이유를 모르겠습니다. -_-$@^&*(#!!
quexa의 이미지

원 코드엔 <stdio.h>들어가 있습니다.

kluster86의 이미지

++나
--나 둘다 값을 증가/감소를 시키는데
변수 앞이냐 뒤냐에 따라 처리방식이 달라집니다. 전위/후위

while((s++)<10) 이렇게 할경우 s값을 10과 비교한 뒤 s+1을 하고
while((++s)<10) 이렇게 할경우 s+1한 값을 10과 비교합니다.

그러니 하나씩 순서대로 값을 넣어 보시면
while( (10++)<10)일때 10과 10을 비교한뒤 false가 되어서 나올때 10+1을 하니 결과값이 11이 나온 것 입니다.

욥!!!! 늦게 시작했지만 열심히하면 된다!!!!!

quexa의 이미지

감사합니다! _(__)_