프로그래밍

 3198, 1/160 회원가입  로그인  
   wjdwls23
   c언어 산술연산중에...

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2911 [복사]


#include <stdio.h>
int main()
{
    int a = 1;
    int b = 1;
    printf("a + a++ : %d \n", a + a++);  
    printf("b + ++b : %d \n", b + ++b);  
    return 0;
}
에서 a + a++ 은 풀어서 하자면 1+1 먼져하고 1를증가시키고  2+1=3 이돼는거잔아용
       b + ++b 는 1씩 먼져 증가시키고 2+2가되어 2+2=4 가돼는거고

1번째질문:  그런데 출력을하면 a + a++ 값이 2가나와용 왜그레요 ?
                제가 이해한바로는 출력은 2로나오고
2번쨰질문:  본래값은 3 인거같은데 제가 이해한게 맞나요  ?

3번째질문: 2번쨰질문에서 제가이해한게 맞다면 그걸이용해서 출력할수잇는방법좀요
               ex)a + a++ = b  // b +a = 4       b 가 3이돼니 a 가 1 을더해 4가되는거 이렇게 출력이돼나요 ?
아니면 다른응용방법좀요 ... 왜 구지 출력은 2로돼는데 본래값이 3인지이해가 안가네용...

  Hit : 4239     Date : 2011/03/12 08:48



    
befehlen a + a++을 하게 되면 a와 a의 값을 더한 이후 a의 값을 증가시키게 됩니다. 그러므로 해당 printf문에서의 값은 1+1인 2가 나오게 되겠지요. 다음 번에 a를 사용하고자 할 때 보면 a가 2로 되어 있음을 볼 수 있으실 겁니다. 2011/03/12  
/x7375696e6567 1번. 후치연산은 연산후에 증가시키는거에요
따라서 연산동안은 기존 a의 값이 적용되고
연산후에 a+1 이 되는거죠

2번. 1번과 동일한듯요 ㅋ

3번. a + a++ = b 는 너무 수학적인 식인데요
컴퓨터 적인 식은
b = a + a++ 로 볼수있겠네요
이것도 1번과 마찬가지의 경우입니다.
음.. 글구 b + a = 4 ..
너무 질문이 수학적인거같은데..
컴퓨터적으로 하실려면 b+a의 값이 4가 되는게 맞나요?
이렇게하시면 좀더 답변하기 편할듯한데요..
쪽지주시면 좀더 성실하게 답변해드릴께요
2011/03/12