Basic C Language / 자료형(int, float, double, string)에 따른 메모리 크기

Geewon Kim·2024년 1월 14일

Clang

목록 보기
11/13

메모리 크기는 컴퓨터에서 데이터를 저장하는 단위입니다. C 언어에서는 다양한 데이터 유형이 있고, 각 유형은 메모리에서 차지하는 크기가 다릅니다.

정수형:

  1. char:

    • 크기: 1 byte
    • 범위: -128 ~ 127 또는 0 ~ 255 (부호 있는/없는 char에 따라 다름)
  2. short int:

    • 크기: 2 bytes
    • 범위: -32,768 ~ 32,767
  3. int:

    • 크기: 4 bytes
    • 범위: -2,147,483,648 ~ 2,147,483,647
  4. long int:

    • 크기: 4 또는 8 bytes (시스템 및 컴파일러에 따라 다름)
    • 범위: 약 -2.1 billion ~ 2.1 billion (32-bit), 약 -9.2 quintillion ~ 9.2 quintillion (64-bit)
  5. long long int:

    • 크기: 8 bytes
    • 범위: 약 -9.2 quintillion ~ 9.2 quintillion

부동 소수형:

  1. float:

    • 크기: 4 bytes
    • 정밀도: 6 ~ 9 자리
  2. double:

    • 크기: 8 bytes
    • 정밀도: 15 자리
  3. long double:

    • 크기: 8 또는 16 bytes (시스템 및 컴파일러에 따라 다름)
    • 정밀도: 18 자리 (일반적으로)

포인터:

  • 포인터:
    • 크기: 4 bytes (32-bit 시스템), 8 bytes (64-bit 시스템)

메모리 크기는 특정 시스템의 아키텍처, 운영 체제 및 컴파일러에 따라 달라질 수 있습니다. 위의 값들은 일반적인 규칙에 따른 것이며, 실제 환경에서는 시스템 및 컴파일러의 특성을 고려해야 합니다. 프로그래밍을 하면서 메모리 크기에 대한 자세한 정보는 sizeof 연산자를 사용하여 확인할 수 있습니다.

#include <stdio.h>

int main() {
    char charVar;
    short int shortVar;
    int intVar;
    long int longVar;
    long long int longLongVar;

    float floatVar;
    double doubleVar;
    long double longDoubleVar;

    int* intPtr;

    printf("char: %zu bytes\n", sizeof(charVar));
    printf("short int: %zu bytes\n", sizeof(shortVar));
    printf("int: %zu bytes\n", sizeof(intVar));
    printf("long int: %zu bytes\n", sizeof(longVar));
    printf("long long int: %zu bytes\n", sizeof(longLongVar));

    printf("float: %zu bytes\n", sizeof(floatVar));
    printf("double: %zu bytes\n", sizeof(doubleVar));
    printf("long double: %zu bytes\n", sizeof(longDoubleVar));

    printf("int 포인터: %zu bytes\n", sizeof(intPtr));

    return 0;
}

profile
내 지식의 외장하드

0개의 댓글