C++ Chapter 2.1 : 기본 자료형 소개

Date:     Updated:

카테고리:

태그:

인프런에 있는 홍정모 교수님의 홍정모의 따라 하며 배우는 C++ 강의를 듣고 정리한 필기입니다. 😀
🌜 [홍정모의 따라 하며 배우는 C++]강의 들으러 가기!


Chapter2. 변수와 기본 자료형

image

character

  • char는 정수이기도 하다. ASCII에 대응되어 저장되기 때문에.
    • char나 bool이나 내부적으로는 정수 Integer로 저장되고 보여질땐 변환

        char c = 65; // c를 출력하면 'A'출력
        bool b = true; // b를 출력하면 '1' 출력
      
  • char : 최소 1byte 크기의 문자.
  • char16_t : char보다 작지 않은 최소 2byte 크기의 문자. ex) 한글
  • char32_t : char보다 작지 않은 최소 4byte 크기의 문자.
  • wchar_t : 표현할 수 있는 최대 크기의 문자세트. 주로 유니코드 문자에 사용된다.


signed integer

  • 음수, 0, 양수.
  • unsigned integer와 저장되는 방식이 다르다.
  • signed char : char와 같은 사이즈인 최소 1byte 크기의 정수.
  • (signed) int : short 보다 작지 않은 최소 2byte 크기의 정수.
    • 대부분 4byte
  • (signed) long (int) : int보다 작지 않은 최소 4byte 크기의 정수.
  • (signed) long long (int) : long 보다 작지 않은 최소 8byte 크기의 정수.
    • C99, C++11 부터 지원


unsigned integer

  • 0, 양수.
  • signed integer와 저장되는 방식이 다르다.
  • unsigned char : char와 같은 사이즈인 최소 1byte 크기의 정수.
  • unsigned int : short 보다 작지 않은 최소 2byte 크기의 정수.
    • 대부분 4byte
  • unsigned long (int) : int보다 작지 않은 최소 4byte 크기의 정수.
  • unsigned long long (int) : long 보다 작지 않은 최소 8byte 크기의 정수.


floating-point

  • 실수
  • 각각 숫자를 저장되는 방식이 다르다
  • float : 4byte
    • 1.0 f
  • double : float보다 정확도가 높다. 8byte
    • f 안붙이면 double
      • float f = 3.14 ;
        • 이건 오류다. double형을 더 작은 사이즈인 float에 구겨넣으려고 하는거라서.
        • C에선 오류인데 C++에선 오류 아님. 걍 형변환 해줌.
  • long double : double보다 정확도가 높다.


auto

  • 컴파일러가 타입을 알아서 정해준다.

      auto f = 3.14f
      // f는 float로 컴파일 해줌
    


C++에서 변수를 초기화 하는 방법

1. int a = 123

  • 가장 보편적

2. int a(123)

  • C++언어
  • 덜 엄격하다. 형변환을 해준다.
    • int a(3.14)
      • int 에 double을 넣은 꼴
      • .14 버리고 3 으로 int 형변환 해준다

3. int a{123}

  • C++언어
  • 더 엄격하다. 형변환을 해주지 않는다.
    • int a{3.14}
      • intdp double을 넣는 꼴
      • 강제 캐스팅 안해준다.
      • 에러

cf)

int k, l, m = 2;  // k, l은 2로 초기화 되지 않는다. m만 2로 초기화됨

// 보는 사람 입장에서 착각할 수 있으니 다음과 같이 해주어야 한다. 
//초기화 안하는건 뒤에 or 따로따로

int m = 2, k, l;

int k, l;
int m = 2;


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기