Seung's Learning Record

[C++] char형과 bool형 본문

프로그래밍/C++

[C++] char형과 bool형

70_0ewd 2023. 10. 8. 18:15

char형은 작은 문자형, 즉 한글자를 표현하고자 할 때 사용하는 변수형이다.
c++에서는 문자를 표현할 때 ASCII코드를 사용한다.

#include <iostream>
using namespace std;

int main(){
	
    int a = 77;
    char b = a;
    char c = 'M';
    
    cout << b << endl; 		// M
    cout << c << endl;		// M
    
    return 0;
}

아스키코드의 각 문자는 대응되는 숫자를 가지고 있다. char형 변수에 숫자를 넣을경우 그 숫자에 대응되는 문자값이 나오게된다.
당연히 숫자값이 아닌 그냥 문자값을 넣어도 된다.
이때 주의해야 할 점은 따옴표이다. char형에 문자를 넣고싶을때는 '작은 따옴표'를 사용해야한다. 그 이유를 설명하기 전에 null 문자에 대해 먼저 말해보자.

char a[] = {'a','b','c'};
char b[] = {'a','b','c','\0'};

두 문자열을 출력해보면 b는 문제없이 abc가 출력되는 반면 a는 abc뒤에 쓰레기값이 더 포함되서 출력된다. 이 이유는 null문자를 작성하지 않아서 이다. 문자열을 출력할 때 컴퓨터는 null 문자를 기준으로 문자열을 끊는다. 그래서 null이 있는 b문자열과 다르게 a문자열은 우연찮게 null을 마주할때 까지 계속 의미없는 문자들을 출력하게 되는것이다. 

그렇다면 문자열을 쓸 때마다 null문자를 넣어야할까? 아니다 "큰 따옴표"를 사용할 경우 자체적으로 null을 포함하고 있어서 따로 안써도 되며 해당 기호는 string 자료형을 작성할 때 사용된다.
char형 변수를 큰 따옴표로 감싸게 되면 문자와 null 문자가 같이 존재하고 있는 것이 된다. 한개의 문자만 대입가능한 char형 변수는 에러를 일으킬 수 밖에 없게 되는 것이다.


bool형은 0혹은 1만 표현 가능하다. 이때 명시적으로 0은 false, 1은 true 로 사용한다. 해당 변수형은 조건문에서 주로 사용한다.

#include <iostream>

int main(){
	
    bool a = 0;
    bool b = 1;
    bool c = 10;
    
    // a = 0, b = 1, c = 1
    return 0;
}

bool형 변수에 0을 넣을 경우 당연히 해당 변수의 값은 0이며, 0을 제외한 수를 넣을 경우 변수의 값은 1이 된다.

'프로그래밍 > C++' 카테고리의 다른 글

[ C++ ] 데이터의 형변환  (1) 2023.10.26
[ C++ ] 상수와 const  (0) 2023.10.08
[ C++ ] 정수형과 실수형  (0) 2023.10.08
[ C++ ] 변수의 선언과 사용  (0) 2023.10.08
[ C++ ] Hello, C++!!  (0) 2023.10.08