hello.c -> hello.obj -> hello.exe
// 주석 1
/*
주석 2
*/
int num1; // int형인 변수 num1 선언
int num2, num3, num4; // 변수 여러개 선언
int num5 = 20; // 선언과 동시에 초기화
num1 = 10; // 변수에 값 할당
- 영문 문자, 숫자 사용
- 대소문자 구분
- 문자부터 시작, 숫자 시작 불가
- _ 사용 가능
- 키워드 사용 불가
정수형 : char, int, short, long, long long
signed : 부호 있는 정수, 키워드는 보통 생략
unsigned : 부호 없는 정수 표현, 0부터 시작
자료형 | 크기 |
---|---|
char | 1바이트 |
int | 2바이트 |
long | 4바이트 |
long long | 8바이트 |
long은 os bit 수에 따라 달라짐
오버플로우 : 최대값을 넘어가면 최솟값부터 다시 시작
언더플로우 : 최솟값보다 작아지면 최댓값부터 다시 시작
size = sizeof(int) // int형의 크기 구하기
size = sizeof(num1); // 변수의 자료형 크기 구하기
#include <stdio.h>
#include <limits.h> // 자료형의 최댓값과 최솟값이 정의된 헤더 파일
int main()
{
char num1 = CHAR_MIN; // char의 최솟값
short num2 = SHRT_MIN; // short의 최솟값
int num3 = INT_MIN; // int의 최솟값
long num4 = LONG_MIN; // long의 최솟값
long long num5 = LLONG_MIN; // long long의 최솟값
return 0;
}
CHAR_MAX + 1을 이용하면 오버 플로우 발생
자료형 | 크기(바이트) | 유효자릿수 |
---|---|---|
float | 4 | 7 |
double | 8 | 16 |
long double | 8 | 16 |
long double도 os에 따라 달라짐
float num1 = 0.1f; // float는 숫자 뒤에 f
double num2 = 3.213455; // double은 뒤에 생략
long double num3 = 9.523135; // long double은 숫자 뒤에 l
#include <stdio.h>
#include <float.h> // 실수 자료형의 양수 최솟값, 최댓값이 정의된 헤더 파일
int main()
{
float num1 = FLT_MIN; // float의 양수 최솟값
float num2 = FLT_MAX; // float의 양수 최댓값
double num3 = DBL_MIN; // double의 양수 최솟값
double num4 = DBL_MAX; // double의 양수 최댓값
long double num5 = LDBL_MIN; // long double의 양수 최솟값
long double num6 = LDBL_MAX; // long double의 양수 최댓값
return 0;
}
실수 언더플로우는 0 또는 쓰레기 값으로 처리
오버플로우는 inf 출력