bool형에 관한 질문입니다. (c언어)
조회수 156회
#include <stdio.h>
#include <stdbool.h>
void main(){
bool b = 0<10;
bool b2 = 4>7;
printf("%d\n", b&&b2);
printf("%d\n", b||b2);
}
여기서 출력 값이 0,1이 나오는데 그 과정이 이해가 안됩니다. 제가 알기로 bool형에는 0 이외의 값을 넣으면 true(1)이 대입되는 걸로 알고 있는데, b는 참이기에 1, b2는 거짓이기에 0이 대입되는게 아닌가요 ?
2 답변
-
주어진 코드는 이렇게 정리됩니다.
printf("%d\n", true && false); printf("%d\n", true || false);
true && false === false
입니다. 뭔가를&&
로 엮으면, 그것들이 모두 다 각각 참일 때에야 전체가 참이 되고, 하나라도 거짓이 있으면 전체가 거짓이 됩니다.true || false === true
입니다. 뭔가를||
로 엮으면, 그것들이 모두 다 각각 거짓일 때에야 전체가 거짓이 되고, 하나라도 참이 있으면 전체가 참이 됩니다.
이제 출력 값이 0, 1로 나오는 이유를 아시겠죠.
-
댓글 입력