2013-06-23 5 views
-9

내가 간과 한 초등 프로그래밍 문제가 생겼다. 출력은 무엇입니까? C 프로그래밍

int a = 2, b = 3, c = 5; 

if (!a == b) 
    c = a--; 
else 
    c = ++b; 

printf("%d %d %d\n", a, b, c); 

나는 출력이 2 4 4 사람이 내가 올바른 또는 잘못된 왜 해요 여부를 확인하는 데 도움해야한다고 생각?

+6

코드를 컴파일하고 실행할 때 어떤 일이 발생합니까? –

+1

대답은 [여기] (http://ideone.com/YaZTUm)입니다. – djf

+0

@ djf :-D 좋은 점. –

답변

1

당신은 올바른 : 당신이 00 == b0입니다 !a주는 사람은,

그래서, c = ++bb = 4c = 4 제공합니다. a은 변경되지 않습니다.

0

!==보다 우선 순위가 높으므로 if의 조건은 거짓 ((!a) == b) -> (0 == 3)이됩니다. 그러면 else가 실행되고 b와 c가 모두 4로 설정됩니다. 올바른 것입니다.

관련 문제