메모리에 있는 값 사용

자료형은 값의 종류, 메모리 저장 공간 크기, 데이터의 표현 범위 결정
c언어는 정수, 실수, 문자 등을 구별할 수 있도록 자료형 정의
그 밖에 새로운 자료형을 만들어 내는 사용자 정의 자료형(user-defined data type)도 존재
컴퓨터에서 문자 처리
- 사용자 --> 컴퓨터 : 이진수로 변환
컴퓨터 --> 사용자 : 이진수를 문자로 변환
- 아스키 문자표
1960년대 미국에서 만들어짐

상수의 개념과 표현 방법
상수(constant)란 코드가 실행되면서 변경되지 않는 값
리터럴 상수(literal constant)
- 리터럴이라고도 하며, 정수, 실수, 문자, 문자열 상수가 포함
c코드에서 정수는 10진수, 16진수, 8진수, 2진수로 표현 가능

실수: 소수점이 있는 숫자, c언어에서 십진수로 표기하기에 너무 긴 실수는 숫자오 10의 거듭제곱의 형식으로 표현 가능
문자 한개 -'' 사이에 문자를 표시
문자열 -"" 사이에 문자열 표시


기본 자료형
- void 자료형

- 스칼라 자료형: 값을 한 개만 가질 수 있고 복합(aggregate) 자료형은 값을 여러 개 저장 가능
- 정수 자료형
- 정수: 정수값을 표현할 수 있는 범위, 메모리 사용량에 따라 다양한 정수 자료형 제공
unsigned, signed 수식어에 따라 다르게 취급

- int 자료형: 정수 자료형(intergral type)에서 가장 기본이 되는 자료형
컴퓨터에서 가장 빨리 처리하고 연산할 수 있는 값에 해당되는 메모리 크기를 할당
- short int
- long int
- long long int: 자료형을 나타내는 접미어가 없는 경우 지정
- 정수 상수와 자료형: 코드에서 int형 범위 안에 있는 값을 정수 상수로 사용하면, 컴파일러가 int 자료형으로 취급
- sizeof(data type): 메모리에서 차지하는 공간의 크기를 바이트 단위로 화면에 출력

- 불린 값 표현 <stdbool.h>, _Bool, bool 등은 c99
- char 자료형(문자형): 문자를 표현하는 자료형, 가장 작은 범위를 나타내는 정수 자료형


- size_t 자료형: - sizeof 연산자가 반환하는 값의 자료형
- ptrdiff_t 자료형: 메모리 주소에서 다른 주소를 뺄 때의 차(difference)를 의미하는 자료형
기본 자료형
- 실수 자료형 => float, double, long double 자료형 제공

- 실수를 메모리에 저장하는 방법

- 대다수의 경우 double 형 사용 권장

**변수선언









자동 형 변환: 컴파일러가 알아서 적합한 자료형을 변환하는 것(암묵적 형 변환)
- c언어에서 자동 형 변환은 정수 - 실수, 정수-정수, 실수-실수 자료형에서 발생

명시적 형 변환: 프로그래머가 특정 자료형으로의 변환을 컴파일러에 직접 요청하는 것
- 변환할 표현식 앞에 형 변환 연산자(cast operator)를 표시
형 변환 연산자는 변환 목표 자료형을 괄호로 감싸서 표시
임시로 값을 다른 자료형으로 변경해야 할 때 유용
(자료형) 표현식 // 명시적 형 변환 방법
int n = (int)2.3; // 자동 형 변환 코드 int n = 2.3
double d = (double)2; // 자동 형 변환 코드 double d = 2;
#include<stdio.h>
int main(void){
int n = 65;
printf("n=%d\n", n); // 정수로 출력 65
printf("n=%f\n", n); // 실수로 출력 0.0000 문제 발생
printf("n=%f\n", (float)n); // 실수로 출력 65.000000
return 0;
}

typedef 기존_자료형_이름 새로운_자료형_이름;
typedef int INT;
typedef long long int LLINT;
INT a =3;
LLINT b = 10ll;
a=(INT)b;
a=sizeof(INT);
const 자료형변수이름 = 초기값;enum 자료형
#include<stdio.h>
int main(void){
enum Month{JANUARY = 1, FEBRUARY = 2, MARCH = 3, APRIL = 4, MAY = 5, JUNE = 6, JULY = 7, AUGUST = 8, SEMTEMBER = 9,
OCTOBER = 10, NOVEMBER = 11, DECEMBER = 12};
enum Month month = MARCH;
printf("month = %d\n", month);
return 0;
}
enum 열거형_이름{상수1 [=정수 표현식], 상수2 [=정수_표현식], ...상수N [=정수표현식];
//=정수표현식 생략가능
enum NUM {NUM1, NUM2, NUM3};
열거형 상수의 초기값은 정수 자료형의 값이나 표현식으로 사용 가능
열거형의 장점
1. 코드 단순화
열거형의 단점
1. 열거형은 int 자료형으로 취급된다.