: 값을 저장하는 메모리 공간을 확보하고 그 메모리 공간에 이름을 붙여준 것
- 변수에 저장한 값은 언제든 변경할 수 있다
- 변수마다 정해진 자료형이 있다.
- 모든 변수는 정해진 이름이 있고, 변수명을 정의할 때는 지켜야 할 규칙이 있다
자료형
| 정수형 | 메모리크기 | 범위 |
|---|---|---|
| short | 2Byte | -32768 ~ +32767 |
| int | 4Byte | -2147483648 ~ +2147483647 |
| long | 4Byte | -2147483648 ~ +2147483647 |
| long long | 8Byte | -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 |
| 실수형 | 메모리크기 | 범위 |
|---|---|---|
| float | 4Byte | 3.4E-38 ~ 3.4E+38 , 유효자리 6자리 |
| double | 8Byte | 1.7E-308 ~ 1.7E+308 , 유효자리 12자리 |
| 문자형 | 메모리크기 | 범위 |
|---|---|---|
| char | 1Byte | -128 ~ 127 |
- 정수형과 실수형은 저장구조가 완전히 다르다.
- 따라서 연산속도 차이가 많이 난다.
int i = 1;
변수 선언 = 랜덤으로 메모리를 할당하는 것
메모리 공간에 i 라는 이름을 붙여준 것이다.
컴파일러에게 혼돈을 주는 문장을 사용하지 못하도록 한 것이다
변수에 저장될 값의 크기: 변수의 범위보다 오버플로, 언더플로가 발생하지 않도록 최소값, 최대값 범위를 고려해야 함
변수의 선언 위치 : 변수를 함수 외부에 선언하면 전역변수, 함수 내부에 선언하면 지역변수로 저장되어 전역변수, 지역변수의 기억공간은 다르다. 전역변수는 자료 영역에, 지역변수는 임시 공간인 스택영역에 저장된다
변수의 초기화 : 선언된 변수에 특정값을 부여하는 것이다. 초기화 하지 않으면 쓰레기값이 남아서 에러가 발생할 수 있다
- sizeof() 함수는 메모리 공간을 소모하는 크기를 'byte' 단위로 바꿔서 출력하는 함수이다.
- 시스템에 따라 자료형(int, char, short, long) size가 변할 수도 있기 때문에 사용한다.
int a;
a = 8;
printf("a의 값 %d size : %ld\n",a,sizeof(a));
-----------------------------------------------------
> a의 값 8 size : 4
- 상수는 변하지 않는 값을 뜻한다.
- 처음 선언할 때 값을 할당한 후에 그 뒤로는 값을 변경할 수 없다.
- 코드영역에 저장
상수를 정의하는 방법에는 두가지 방법이 있다.
1. const 키워드를 사용하는 방법
2. #define 전처리기를 사용하는 방법
메모리 공간을 사용한다.
const int a = 3; // a는 더이상 변경 불가능
전처리기가 일괄 변경 후 #define 문이 사라진다.
-> 메모리 공간을 줄일 수 있다
#define eyeNum 2;

| 출력 형식 | 설명 | 예 | 출력 예 |
|---|---|---|---|
| %d | 부호 있는 정수형 | printf("%d",-150); | -150 |
| %c | 문자열 하나 | printf("%c",'a'); | a |
| %x | 16진수(소문자)로 출력 | printf("%x",11); | b |
| %X | 16진수(대문자)로 출력 | printf("%X",11); | B |
| %o | 8진수로 출력 | printf("%o",8888); | 21270 |
| %s | 문자열 출력 | printf("%s","hello, world"); | hello, world |
| %u | 부호없는 정수 출력 | printf("%u",1); | 1 |
| %ld | 부호 있는 long형 정수 출력 | printf("%ld",-3243) | -3243 |
| %lld | 부호 있는 long long형 정수 출력 | printf("%lld",-2147483649) | -2147483649 |
| %lu | 부호 없는 long형 정수 출력 | printf("%lu",2314) | 2314 |
| %llu | 부호 없는 long long형 정수 출력 | printf("%llu",2147483650) | 2147483650 |
| %f,%lf | 실수형 출력, 6자리까지 출력이 되며 그 이하는 반올림처리, 모자라면 0으로 출력,float 자료형은 %f,double에 입력받을 때는 %lf 사용 | printf("%f, %.1f",0.56,0.56) | 0.560000, 0.6 |
