C 기본 문법 – 기본 데이터 타입 – 3 – 불리언형

C 기본 문법 – 기본 데이터 타입 – 3편: 불리언형(Boolean Type) 완전 이해하기

안녕하세요, C 언어에 진심인 여러분 😊
이번 시간에는 C 언어에서 조건을 판단할 때 핵심이 되는 데이터 타입, 바로 **불리언형(Boolean Type)**에 대해 알아보겠습니다!

프로그래밍에서 “참이냐 거짓이냐”, **“조건이 맞냐 안 맞냐”**라는 논리는 모든 흐름 제어문의 중심이 되죠.
그걸 담아내는 게 바로 불리언형이에요!

하지만…!

C 언어는 불리언 타입이 원래부터 존재하지 않았습니다!
C는 굉장히 간결한 언어이기 때문에 불리언형을 특별히 정의하지 않고도 논리를 구현할 수 있도록 되어 있었어요.

그럼 과연 C 언어에서 불리언은 어떻게 사용되는지, 정식으로 불리언을 쓰려면 어떻게 해야 하는지,
지금부터 차근차근 알아보겠습니다!


불리언형이란?

불리언(Boolean)이란 참(True) 또는 **거짓(False)**을 표현하기 위한 데이터 타입입니다.

즉, 참 = 1, 거짓 = 0
딱 두 가지 상태만 가지는 데이터죠!

이 값들은 주로 조건문(if), 반복문(while), 논리 연산자 등에 사용됩니다.


C 언어에서 불리언은 어떻게 표현할까?

C 언어에서는 전통적으로 별도의 불리언 타입 없이도 정수형을 사용해서 참/거짓을 표현해 왔어요.

기본적인 사용 방식

int isTrue = 1;    // 참
int isFalse = 0;   // 거짓

if (isTrue) {
    printf("조건이 참입니다!
");
}
if (!isFalse) {
    printf("이것도 참입니다!
");
}

🎯 C에서는 0은 거짓, 0이 아닌 모든 값은 참으로 간주됩니다.


정식 Boolean 타입 사용하기 (stdbool.h 사용)

C99부터는 불리언을 조금 더 명확하게 쓰도록 **표준 라이브러리 <stdbool.h>**가 추가되었어요!

#include <stdio.h>
#include <stdbool.h>

int main() {
    bool isEven = true;
    bool isOdd = false;

    if (isEven) {
        printf("짝수입니다.
");
    }

    if (!isOdd) {
        printf("홀수가 아닙니다.
");
    }

    return 0;
}

핵심 포인트:

키워드 설명
bool 불리언 타입을 위한 별칭 (typedef _Bool bool)
true 값 1로 정의된 참
false 값 0으로 정의된 거짓

📌 stdbool.h를 include 해야지만 bool, true, false를 사용할 수 있어요!


불리언과 조건문

불리언형은 조건문의 핵심입니다.
아래와 같은 구조로 많이 사용되죠.

if (조건식) {
    // 조건이 참일 때 실행
} else {
    // 조건이 거짓일 때 실행
}
bool isAdult = age >= 20;
if (isAdult) {
    printf("성인입니다.
");
}

참/거짓 판단은 모든 조건문의 기초예요!


불리언 연산자

불리언 연산자는 참/거짓을 조합하거나 판단하는 데 사용돼요.

연산자 의미 예시 결과
&& 논리 AND true && false false
` | | ` 논리 OR `true | | false` true
! 논리 NOT !true false

예시 코드

#include <stdio.h>
#include <stdbool.h>

int main() {
    bool hasKey = true;
    bool isDoorLocked = false;

    if (hasKey && !isDoorLocked) {
        printf("문을 열 수 있습니다!
");
    }

    return 0;
}

불리언은 왜 중요할까?

불리언형은 조건 판단, 제어 흐름, 결과 판별
거의 모든 프로그램의 논리 흐름에 필수로 쓰이는 핵심 도구입니다.

예시 상황:

  • 로그인 성공 여부 (isLoggedIn == true)
  • 상품 재고 유무 (isInStock == false)
  • 특정 조건 충족 여부 (score >= 90)

불리언을 정수로 출력할 수 있을까?

네! true, false는 사실 정수 1과 0이므로 %d로 출력할 수 있어요.

#include <stdio.h>
#include <stdbool.h>

int main() {
    bool check = true;
    printf("불리언 값: %d
", check);  // 출력: 1
    return 0;
}

불리언 vs 정수형 비교

항목 bool int
값의 종류 true, false 0 ~ ±21억
의도 논리 판단 수치 연산
메모리 1 byte (표준은 1 이상) 4 byte
표현 방식 stdbool.h 필요 기본 내장

✅ 요약 정리

항목 내용
정의 참/거짓을 표현하는 타입
자료형 bool (C99 이후), 정수형(int)
참/거짓 true = 1, false = 0
필요 헤더 #include <stdbool.h>
사용 예 조건문, 반복문, 상태 판단 등
기본 규칙 0은 거짓, 0 이외는 참

⚠️ 불리언 사용 시 주의할 점

주의사항 설명
stdbool.h를 include하지 않으면 bool, true, false를 쓸 수 없어요
숫자 비교 시 == 빠뜨리지 않기 (예: if (x == 5))
실수로 =(대입)과 ==(비교)를 헷갈릴 수 있어요
조건이 정수일 경우에도 0은 거짓, 0이 아니면 참이라는 규칙 기억하기
오래된 C 버전에서는 stdbool.h가 없으므로 직접 정의하거나 int 사용 필요

마무리하며 💬

불리언형은 C 언어에서 조건 판단의 핵심입니다!
비록 C는 초창기엔 전용 불리언 타입이 없었지만,
우리는 이제 stdbool.h를 통해 더욱 명확하고 깔끔하게 논리적 코드를 작성할 수 있게 되었어요!

다음 시간에는 문자열(String) 처리와 배열에 대해 배우면서,
문자(char)들이 모여 문장이 되는 원리까지 확장해볼게요.

그럼 오늘도 수고 많으셨고,
재미있는 C 언어 여행은 계속됩니다! 감사합니다 😊

답글 남기기