#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 파일 마다 자료형의 최솟값 최댓값이 저장되어 있다.
| 자료형 | 최솟값 | 최댓값 |
|---|---|---|
| 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 |
| 자료형 | 최솟값 | 최댓값 |
|---|---|---|
| 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와 지수를 표기함.