true, false 1과 0의 의미
우리는 정수 0은 '거짓'을 의미하는 숫자로 정수 1은 '참'을 의미하는 숫자로 정의하고 있다. 여기서 우리는 0과 1을 숫자에 연결시켜 이해하려 하지만 true와 false는 각각 숫자 1과 0이 아닌 '참'과 '거짓'을 나타내는 목적으로 정의된 데이터로 인식하는 것이 바람직하다.
#include <iostream>
using namespace std;
int main(void){
int num=10;
int i=0;
cout<<"true: "<<true<<endl;
cout<<"false: "<<false<<endl;
while(true){
cout<<i++<<' ';
if(i>num)
break;
}
cout<<endl;
cout<<"sizeof 1: "<<sizeof(1)<<endl;
cout<<"sizeof 0: "<<sizeof(0)<<endl;
cout<<"sizeof true: "<<sizeof(true)<<endl;
cout<<"sizeof flase: "<<sizeof(false)<<endl;
return 0;
}
결과
true: 1
false: 0
0 1 2 3 4 5 6 7 8 9 10
sizeof 1: 4
sizeof 0: 4
sizeof true: 1
sizeof flase: 1
다음과 같이 sizeof() 를 사용하여 데이터의 크기를 확인했을 때 숫자 1과 0은 4바이트의 크기를 가지고 참, 거짓을 뜻하는 1과 0은 1바이트의 크기를 가진다는 것을 확인할 수 있었다. 따라서 true와 false는 숫자로 이해하지 말고 참과 거짓을 표현하기 위한 1바이트 크기의 데이터라고 이해해야 한다.
자료형 bool
true와 false는 그 자체로 참과 거짓을 의미하는 데이터이기 때문에, 이들 데이터의 저장을 위한 자료형을 별도로 정의할 수 있다.
#include <iostream>
using namespace std;
bool IsPositive(int num){
if(num<=0)
return false;
else
return true;
}
int main(void){
bool isPos;
int num;
cout<<"Input number: ";
cin>>num;
isPos=IsPositive(num);
if(isPos)
cout<<"Positive number"<<endl;
else
cout<<"Negative number"<<endl;
return 0;
}
결과
Input number: 3
Positive number
Input number: -3
Negative number
위의 코드를 살펴보면 bool을 int 나 double 과 마찬가지로 bool형 변수를 선언한 것을 확인할 수 있다. 우리는 bool형 변수를 통하여
참, 거짓 => 1,0 데이터를 받아오고 이것을 활용하여 Positive number와 Negative number를 구별해 주는 함수를 작성하였다.
true, false의 1과 0은 그 자체의 참과 거짓의 데이터이며
자료형 bool은 이들의 데이터의 저장을 위한 자료형이다.
'c++' 카테고리의 다른 글
[C++]동적 메모리 할당 및 반환(new, delete ) (0) | 2023.01.30 |
---|---|
[C++]반환형이 참조형(Reference Type)인 경우 (0) | 2023.01.29 |
[C++]Call-by-value & Call-by-reference (참조자와 함수) (0) | 2023.01.26 |
[C++]참조자(Reference)의 이해 (0) | 2023.01.26 |
[C++]함수의 오버로딩 (2) | 2023.01.21 |