프로그래밍

 3198, 1/160 회원가입  로그인  
   cjswo1234
   알수없는 코드 해석..

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


#include<stdio.h>
void main()
{
int a, b, c;

b=(a=5, a+1), c=b/2;          // 이해가안가는 부분..

printf("c=%d", c);
}



위의 코드에서
" b = (a=5, a+1), c=b/2; "라고 나와있는데,

b값이 a=5, a+1 둘 중 하나를 골라서 c=b/2에 이용하라는 것도 아니고 어떻게 해석해야하죠?..
실행해보면 c=3이 나와서 b=6 즉, a=5로 설정하고 그다음 a+1을 하여 b=6이 되는 것 같긴한데..

  Hit : 4476     Date : 2012/09/09 04:30



    
induction 저도 정확히는 모르지만 ','이 한번에 여러가지 일을 할수있게 하는 명령이라고 합니다.
이 코드에서는 b=(), c=b/2로 b에는 괄호안의값을, c에는 b/2의 값을 대입시킵니다.
또 괄호안에서도 a=5,a+1로 a에는 5의 값을, b=a+1을 가지게 되는것입니다.
2012/09/09  
happyer1 연산자 우선 순위표를 보시면
()가 제일 먼저 실행됩니다.(왼쪽부터)
그다음 +,-가 실행됩니다.(왼쪽부터)
마지막으로 대입연산자 =가 실행됩니다.(오른쪽부터)

즉 종합해보면
b=(a=5,a+1)에서 a=5부터 실행되서 a=5값에
a+1을 한값을 b값에 넣으라고 하네요 그러면 b=6이 되고
마지막으로 c=b/2이므로 c의 값에는 3이 들어가겠네요~
2012/09/10  
cjswo1234 답변 감사합니다! 많은 도움이 되었어요~ 2012/09/10