C언어 학습 노트 : 자료형 정리#

1. 정수형 자료형#

(1) int#

  • 32비트 체계에서 일반적으로 4바이트(32비트)를 차지한다.
  • 표현 범위는 약 -2,147,483,648 ~ 2,147,483,647이다.

(2) long long int#

  • 64비트 정수형으로, 8바이트(64비트)를 차지한다.
  • 표현 범위는 약 -9 × 10¹⁸ ~ 9 × 10¹⁸이다.

(3) 부호(signed/unsigned)#

  • signed : 부호 비트가 존재하여 양수와 음수를 모두 표현한다.
  • unsigned : 부호 비트가 없으며, 0 이상의 정수만 표현한다. → 같은 크기의 메모리를 사용할 경우, unsigned 형식이 더 큰 양수 범위를 표현할 수 있다.

2. 문자열#

  • 문자열은 문자들의 연속이며, 마지막에 NULL 문자('\0') 로 끝을 표시한다.
  • 문자열을 다룰 때는 NULL 문자를 포함한 크기를 반드시 고려해야 한다. 예를 들어, 14글자를 저장하려면 15칸의 메모리를 확보해야 한다.
  • 문자열 처리 시에는 메모리 구조와 NULL 종료 규칙을 정확히 이해해야 한다.

3. 부동소수점 자료형#

(1) float#

  • 단정도(single precision) 부동소수점
  • 4바이트(32비트) 크기
  • 유효 자릿수: 약 6자리

(2) double#

  • 배정도(double precision) 부동소수점
  • 8바이트(64비트) 크기
  • 유효 자릿수: 약 15자리

(3) long double#

  • 특수 정밀도(extended precision) 부동소수점
  • 일부 컴파일러에서는 80비트(79비트 이상) 지원
  • 컴파일러와 아키텍처에 따라 지원 여부와 크기가 다르다.

(4) 실수의 오차 문제#

  • 컴퓨터에서 실수(real number)는 근사값으로 저장되므로 오차가 발생한다.
  • float는 정밀도가 낮아 계산 시 오차가 커질 수 있다.
  • 일반적으로 double을 사용하는 것이 안전하다. 단, double 역시 약 15자리까지만 정확하다.

4. 입출력 시 주의사항#

  • printf()에서는 %f를 사용하면 floatdouble 모두 출력 가능하다.

  • scanf()에서는 반드시 구분해야 한다.

    • float%f
    • double%lf

5. 변수와 자료형의 개념#

  • 변수란 변할 수 있는 값, 즉 정확히 알 수 없는 수를 저장하는 공간이다.

  • 자료형은 해당 변수가 어떤 방식으로 해석될 것인가를 정의하는 형식이다.

  • 변수를 구성하는 세 가지 요소는 다음과 같다.

    1. 자료형
    2. 이름
    3. 초기값

6. 프로그래밍의 기본 원칙#

  • 프로그램 코드는 곧 문서이다.
  • 이름 짓기는 중요하며, 코드의 가독성을 높인다.
  • 주석과 들여쓰기는 반드시 지켜야 한다.
  • 이는 개인만을 위한 것이 아니라 협업을 위한 것이므로, 프로그래밍에는 문서적 특성과 인문학적 특성이 함께 존재한다.

학습 포인트 정리#

  • 정수형은 int, long long int, signed/unsigned 구분을 반드시 숙지한다.
  • 문자열은 항상 NULL 문자('\0')를 포함하여 메모리 크기를 계산한다.
  • 부동소수점 연산은 오차가 불가피하므로 double 사용을 권장한다 -> 반드시라고 생각하는게 좋다.
  • printfscanf의 포맷 지정자는 구분 규칙을 정확히 지켜야 한다.
  • 변수는 자료형, 이름, 초기값 세 가지 요소로 정의된다.
  • 코드 작성은 곧 문서 작성이라는 태도로 임해야 한다.