사진에서 ②번에서
1) ++a하고 --a이 같이 있으면 --a일땐 2고 ++a일땐 3인건 알겠는데
둘다 일단 a의 값을 정한 뒤 같은 값으로 계산하는 거로 이해했는데 맞는 건가요??
그렇게 적용했을 때 c--을 했으면 옆의 c도 4로 되는 것 아닌가요??
2) 17 || 0 을 계산하는건 17이 0이 아닌 다른 값이므로 참이고 0은 거짓이니까 참값 1로 나오는 거예요??
이건 어떻게 계산하는 건가요??
안녕하세요 길벗수험서 운영팀입니다.
[1]
C언어에서 전치 연산은 식 수행 전에 모두 수행됩니다.
1번과 3번의 ++과 --가 식 수행 전에 모두 수행되어 ++a와 --a는 결국 a의 원래 값이 3으로 연산에 참여되게 됩니다.
후치 연산은 식 수행 후에 모두 수행됩니다.
본래 값인 5를 갖고 연산에 참여한 후 식이 모두 끝나면 1이 감소하여 4가 되는 것이죠.
[2]
제대로 계산하셨습니다.
논리연산에서 0이 아닌 값은 모두 참(1)입니다.
때문에 17||0 이나 1||0이나 마찬가지죠.
논리 or연산을 수행하면 참(1)에 해당하니 결과로 1이 나온 것입니다.
행복한 하루되세요 :)
-
관리자2020-09-10 13:57:09
안녕하세요 길벗수험서 운영팀입니다.
[1]
C언어에서 전치 연산은 식 수행 전에 모두 수행됩니다.
1번과 3번의 ++과 --가 식 수행 전에 모두 수행되어 ++a와 --a는 결국 a의 원래 값이 3으로 연산에 참여되게 됩니다.
후치 연산은 식 수행 후에 모두 수행됩니다.
본래 값인 5를 갖고 연산에 참여한 후 식이 모두 끝나면 1이 감소하여 4가 되는 것이죠.
[2]
제대로 계산하셨습니다.
논리연산에서 0이 아닌 값은 모두 참(1)입니다.
때문에 17||0 이나 1||0이나 마찬가지죠.
논리 or연산을 수행하면 참(1)에 해당하니 결과로 1이 나온 것입니다.
행복한 하루되세요 :)