bool 자료형


bool자료형은 C++에만 존재하는 자료형이었다. 그러나 C의 최근 표준에서는 bool을 기본자료형에 추가하였다. 하지만 여전히 bool은 C++의 기본 자료형으로 인식을 많이한다. 그 이유는 상당수의 C 컴파일러가 bool을 지원하지 않기 때문이다. bool자료형을 공부하기에 앞서 true와 false를 이해하는 것이 우선이다.


예제를 통해 살펴보자.


  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.     int num = 10;  
  6.     int i = 0;  
  7.   
  8.     cout << "true : " << true << endl;  
  9.     cout << "false : " << false << endl;  
  10.   
  11.     while (true) {  
  12.         cout << i++ << ' ';  
  13.         if (i > num)  
  14.             break;  
  15.     }  
  16.     cout << endl;  
  17.   
  18.     cout << "sizeof 1: " << sizeof(1) << endl;  
  19.     cout << "sizeof 0: " << sizeof(0) << endl;  
  20.     cout << "sizeof true: " << sizeof(true) << endl;  
  21.     cout << "sizeof false: " << sizeof(false) << endl;  
  22.   
  23.     return 0;  
  24. }  



[ 결과 ]




  • 8~9행 : 키워드 true와 false를 콘솔에 출력했을 때의 출력내용을 확인하기 위한 문장.
  • 11행 : C++에서 while( )함수로 무한루프를 돌릴 때 true를 이용할 수 있다.
  • 18~19행 : 상수 1과 0의 데이터 크기를 확인하기 위한 문장이다.
  • 20~21행 : true와 false의 크기를 확인하기 위한 문장이다.

여기서 많은 사람들이 true는 1이고 false는 0이라는 오해를 많이 한다.

실제로 true는 1이 아니며 false는 0이 아니다. 이 둘은 '참'과 '거짓'을 표현하기 위한 1byte 크기의 데이터일 뿐이다. 다만 true와 false가 정의되기 이전에는 참을 표현하기 위해 숫자 1을, 거짓을 표현하기 위해 숫자 0을 사용했기 때문에 이 둘을 출력하거나 정수의 형태로 형 변환하는 경우 각각 1과 0으로 변환하도록 정의되어 있을 뿐이다.


따라서 true와 false를 굳이 숫자에 연결시켜서 이해하면 안된다.
true는 '참'을 false는 '거짓'을 나타내는 목적으로 정의된 데이터로 인식하는 것이 바람직하다.


자료형 bool


true는 '참'을 false는 '거짓'을 나타내는 목적으로 정의된 데이터이기 때문에, 이들 데이터의 저장을 위한 자료형이 별도로 정의되어 있는 것은 당연하다. true와 false를 가리켜 bool형 데이터라 한다. 그리고 bool은 int, double과 마찬가지로 기본자료형의 하나이기 때문에 다음과 같이 bool형 변수를 선언하는 것이 가능하다.


bool trueone = true ;

bool truetwo = false ; 


예제를 통해서 bool형이 어떻게 사용되는지 알아보자.


  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. bool positive(int num) {  
  5.     if (num <= 0)  
  6.         return false;  
  7.     else  
  8.         return true;  
  9. }  
  10.   
  11. int main(void){  
  12.   
  13.     bool pos;  
  14.     int num;  
  15.     cout << "Input number: "; cin >> num;  
  16.   
  17.     pos = positive(num);  
  18.       
  19.     if (pos)  
  20.         cout << "positive number" << endl;  
  21.   
  22.     else  
  23.         cout << "negative number" << endl;  
  24.   
  25.     return 0;  
  26. }  



[ 결과 ]



  • 4행 : bool도 기본 자료형이기 때문에 함수의 반환형으로도 선언이 가능하다.

  • 13, 17행 :  bool형 변수를 선언해서 함수 positive가 반환하는 bool형 데이터를 저장하고 있다.


'Language > C++' 카테고리의 다른 글

8. C++ 기본(8)  (0) 2016.12.14
7. C++ 기본(7)  (0) 2016.12.13
5. C++ 기본(5) - OOP 단계별 프로젝트 01  (0) 2016.12.12
4. C++ 기본(4)  (0) 2016.12.11
3. C++ 기본(3)  (0) 2016.12.09

+ Recent posts