다양한 데이터 타입

Jaemyeong Lee·2024년 7월 4일

게임 서버1

목록 보기
11/220

이번 Step에서 잡아야 할 것

  • char: 1바이트 값(문자처럼 보이게 출력 가능) + ASCII 개념
  • float / double: 실수는 근사값(정확한 값이 아님) + 기본은 double
  • bool: 의미가 분명한 참/거짓 표현(조건문/상태값에 최적)

char (문자)

  • char는 보통 1바이트 정수입니다.
    다만 출력할 때는 문자처럼 보이도록 취급되는 경우가 많습니다.
  • ASCII: “문자 ↔ 숫자(코드)”를 1:1로 매핑한 표
    • 예: 'A'는 65, 'a'는 97
char ch = 'A';
cout << ch << endl;        // A (문자로 출력)
cout << (int)ch << endl;   // 65 (숫자로 출력)

참고: 숫자 문자 '1'은 정수 1이 아니라 ASCII 코드(49)입니다.

float / double (실수)

  • 실수는 근사값으로 저장됩니다. (정확한 값이 아닐 수 있음)
  • 크기(대부분 환경 기준)
    • float: 4바이트
    • double: 8바이트
  • 실수 리터럴 기본은 double입니다.
    • float로 쓰려면 f 접미사: 3.14f
double x = 0.1 + 0.2;
cout << x << endl;   // 0.3이 '정확히' 찍히지 않을 수 있음

실전 규칙 하나만 기억하면 충분합니다.

  • 실수끼리 ==로 정확히 비교하지 말고, 오차 범위(예: epsilon)를 고려한다.

bool (논리형)

  • bool참/거짓을 표현하는 타입입니다: true / false
  • 내부적으로는 1/0처럼 처리될 수 있지만, 의미가 명확해져서 코드 가독성이 크게 좋아집니다.
bool isDead = false;
bool soundOn = true;

체크 질문 (스스로 답해보기)

  • char가 “정수 1바이트”인데도 문자처럼 출력되는 이유는 뭘까?
  • 왜 실수는 == 비교가 위험할까?
  • 0/1 대신 bool을 쓰면 어떤 점이 좋아질까?

profile
李家네_공부방

0개의 댓글