논리 연산이 헷갈립니다ㅠㅠ
맨삶이
2023.04.01
질문 제목 : 질문 내용 :
#includestdio.h
int main(){
int x,y,z;
z=y=x=-1;
++y&&++x||++z;
printf(%d,%d,%d\n,x,y,z);
z=y=x=-1;
++x||y++&&z++;
printf(%d,%d,%d\n,x,y,z);
}
논리연산이 계속 헷갈리네요.. 처음 x가 증가가 안되는 이유는증가된y가 이미 거짓이라서 뒤에는 증가시킬필요 없고 그냥 ||연산자로 넘어가면 되는거라고 생각하고
두번째에서 약간 이해가 안가요..
&&연산자가 먼저 진행되니까 y증가시켜도 거짓이라서그냥 그다음 ||연산자 계산해서 0 0 -1이라고 생각했거든요.. 제가 어디에서 틀린지 알려주시면 정말 감사하겠습니다ㅠㅠ
-
바나나맛캔디
댓글감사합니다ㅠ!!!
-
찬누리
y&&z 연산부터 하고 y와 z의 값이 1이 증가합니다
즉 y++ && z++ 의 연산결과는 일단 false라는거죠
그리고선 x값을 증가시키고 ||연산을 진행해서 true라는 결과가 나오는것이죠
닶은 0 0 0 입니다
이렇게 할필요없이 x,y,z 에 대해서 ++연산을 post fixed이든 prefixed 이든 하나 증가시켰으니 결과는 모두 0이 나와야하는건 정상인거죠