변수 선언

#include <stdio.h>

int main() {
    const int co1 = 10; // 상수
    int num1 = 0; //변수 선언 뒤 바로 값까지 선언
    int size; // 변수 선언

    size = sizeof num1; //값 선언 sizeof는 변수

    printf("num1 : %d\\n", size);
    return 0;
}

정수형

Long은 운영체제와 프랫폼 마다 크기가 다르다.

자료형 크기 범위 비고
char
signed char 1바이트, 8비트 -128~127
unsigned char 1바이트, 8비트 0~255
short
short int 2바이트, 16비트 -32,768~32,767 int 생략 가능
unsigned short
unsigned short int 2바이트, 16비트 0~65,535 int 생략 가능
intsigned int 4바이트, 32비트 -2,147,483,648~ 2,147,483,647
unsigned
unsigned int 4바이트, 32비트 0~4,294,967,295 int 생략 가능
long
long int
signed long
signed long int 4바이트, 32비트 -2,147,483,648~ 2,147,483,647 int 생략 가능
unsigned long
unsigned long int 4바이트, 32비트 0~4,294,967,295 int 생략 가능
long long
long long int
signed long long
signed long long int 8바이트, 64비트 -9,223,372,036,854,775,808~9,223,372,036,854,775,807 int 생략 가능
unsigned long long
unsigned long long int 8바이트, 64비트 0~18,446,744,073,709,551,615 int 생략 가능
#include <stdio.h>

int main()
{
    char num1 = -10;           // 1바이트 부호 있는 정수형으로 변수를 선언하고 값 할당
    short num2 = 30000;        // 2바이트 부호 있는 정수형으로 변수를 선언하고 값 할당
    int num3 = -1234567890;    // 4바이트 부호 있는 정수형으로 변수를 선언하고 값 할당
    long num4 = 1234567890;    // 4바이트 부호 있는 정수형으로 변수를 선언하고 값 할당
    long long num5 = -1234567890123456789;     // 8바이트 부호 있는 정수형으로 변수를 
                                               // 선언하고 값 할당

    // char, short, int는 %d로 출력하고 long은 %ld, long long은 %lld로 출력
    printf("%d %d %d %ld %lld\\n", num1, num2, num3, num4, num5);
    // -10 30000 -1234567890 1234567890 -1234567890123456789

    return 0;
}
#include <stdio.h>

int main()
{
    unsigned char num1 = 200;                          // 1바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    unsigned short num2 = 60000;                       // 2바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    unsigned int num3 = 4123456789;                    // 4바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    unsigned long num4 = 4123456789;                   // 4바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    unsigned long long num5 = 12345678901234567890;    // 8바이트 부호 없는 정수형으로 
                                                       // 변수를 선언하고 값 할당

    // unsigned char, unsigned short, unsigned int는 %u로 출력하고 
    // unsigned long은 %lu, unsigned long long은 %llu로 출력
    printf("%u %u %u %lu %llu\\n", num1, num2, num3, num4, num5);
    // 200 60000 4123456789 4123456789 12345678901234567890

    return 0;
}

header 파일 마다 자료형의 최솟값 최댓값이 저장되어 있다.

lmits.h

자료형 최솟값 최댓값
char CHAR_MIN CHAR_MAX
short SHRT_MIN SHRT_MAX
int INT_MIN INT_MAX
long LONG_MIN LONG_MAX
long long LLONG_MIN LLONG_MAX
unsigned char 0 UCHAR_MAX
unsigned short 0 USHRT_MAX
unsigned int 0 UINT_MAX
unsigned long 0 ULONG_MAX
unsigned long long 0 ULLONG_MAX

stdint.h

자료형 최솟값 최댓값
int8_t INT8_MIN INT8_MAX
int16_t INT16_MIN INT16_MAX
int32_t INT32_MIN INT32_MAX
int64_t INT64_MIN INT64_MAX
uint8_t 0 UINT8_MAX
uint16_t 0 UINT16_MAX
uint32_t 0 UINT32_MAX
uint64_t 0 UINT64_MAX

지수 표기법

지수 표기법(과학적 표기법)은 정수 부분 한 자릿수만 적고, 소수 자릿수 뒤에 e와 지수를 표기함.