'C99'에 해당되는 글 1건

  1. 2007.08.29 [C++] 논리형 bool
Study - Programming/C/C++2007. 8. 29. 01:15

  우선 C에서 거짓은 0으로, 0이 아닌 값은 모두 참으로 인식한다. 0은 거짓이 확실하지만 참은 굳이 1이 아니어도 된다는 말. 1을 하는 이유는 그냥 보편적이기 때문이다. 단, 다른 언어에서는 종종 보이는 true와 false라는 것을 표현해주는 데이터형이 C에는 없다.


  bool형은 이런 것을 보완하기 위해 C++에서 새로 나온 것이다.


bool ex = true; //ex에는 true가 대입

ex = !ex ; //ex에는 false(!true)가 대입

ex = (ex == false); //ex에는 true가 대입


  물론 이런식으로도 가능하다.


bool ex = -123; // true 대입

bool ex = 0; //false 대입


  다시 한번 체크하자. 참은 굳이 1일 필요가 없다. -123처럼 음수라도 0만 아니면 참이 된다.

 

  하지만 bool을 출력한다고 하면 이야기는 달라진다. 다음 소스를 보자

bool ex = true;

cout << ex << ',';

ex = false;

cout << ex;

 

출력 : 1,0

  즉 출력을 하면 false는 0, true는 1로 출력이 된다. 하지만 좀더 명확하게 true 또는 false로 표현해줄 필요가 있다. 그럴떄는 이렇게 하면 된다.

 

cout << boolalpha;

cout << true << endl;

cout << false << endl;

 

cout << boolalpha로 해주면 true 또는 false로 출력을 해준다.

 

참고로 C99에서는 bool형을 지원한다.

Posted by 머리