데이터를 저장하는 임시 공간, 메모리 공간
변수를 선언하는 법은 아래와 같다.
#include<stdio.h>
int main(void) {
int a; // 메모리 공간 a가 만들어진다. 정수만 저장 (정수형 변수)
int b; // 메모리 공간 b가 만들어진다. 정수만 저장 (정수형 변수)
return 0;
}
정수형 변수 : char형, short형, int형, long형이 있으며 차이점은 추후에 배운다. int를 자주 쓴다. (char는 문자를 저장하지만, 정수형이다. 이유는 추후에 설명)
실수형 변수 : float형, double형, long double형이 있으며 double형을 제일 많이 쓴다.
#include<stdio.h>
int main(void)
{
int a; //정수형 변수 선언
float b; //실수형 변수 선언
return 0;
}
참고로 아래 코드와 같이 동시에 두 변수를 선언하는 것도 가능하다.
#include<stdio.h>
int main(void)
{
int a, b; //정수형 변수 선언
float c, d; //실수형 변수 선언
return 0;
}
변수는 스택 구조(먼저 저장된 값이 나중에 나오는 형식)으로 저장된다. 선언 순서는 a-b-c-d이고, 스택에 a-b-c-d 순으로 들어간다. 따라서 맨 위에 있는 변수는 d이다.
변수에 저장되는 값이다.
#include<stdio.h>
int main(void)
{
int a;
int b;
printf("%d \n", a);
printf("%d \n", b);
return 0;
}
위와 같이 변수를 선언만 하고 아무 값도 저장하지 않고 출력하면 에러가 발생한다. (visual studio 2019 기준)
#include<stdio.h>
int main(void)
{
int a = 0;
int b = 1; // =은 대입연산자.
printf("a의 값은 %d 입니다. \n", a);
printf("b의 값은 %d 입니다. \n", b);
return 0;
}
위와 같이 변수를 저장하고 출력하면 잘 출력된다.
변수에 저장된 데이터는 변경될 수 있다.
#include<stdio.h>
int main(void)
{
int a = 0;
int b = 1;
printf("a의 값은 %d 입니다. \n", a);
printf("b의 값은 %d 입니다. \n", b);
a = a + 10;
b = b + 10;
printf("변경된 a의 값은 %d 입니다. \n", a);
printf("변경된 b의 값은 %d 입니다. \n", b);
return 0;
}
변수는 초기화 해놓는 것이 좋다. 당장 안할거면 0으로 해놓는 습관을 들이자.
#include<stdio.h>
int main(void)
{
int a; //정상
int b; //정상
a = 1;
b = 2;
int c; //오류
c = 3;
printf("a : %d \n", a);
printf("b : %d \n", b);
printf("c : %d \n", c);
return 0;
}
#include<stdio.h>
int main(void)
{
int appleBox = 30;
int grapeBox = 20;
int total;
total = appleBox + grapeBox;
printf("총 %d 박스가 있습니다. \n", total);
return 0;
}
변수 앞에 &를 붙이면 변수의 시작 주소를 알 수 있다. &는 주소 연산자라고 부른다.
#include<stdio.h>
int main(void)
{
int a = 3;
int b = 4;
printf("a : %d \n", a);
printf("b : %d \n", b);
printf("a의 시작 주소 : %x \n", &a);
printf("b의 시작 주소 : %x \n", &b);
return 0;
}
여기서는 16진수로 주소를 출력했지만 10진수나 8진수로 출력할 수도 있다. 하지만 16진수로 출력하는 습관을 들이는 것이 좋다.
또한, 먼저 저장된 변수의 주소의 값이 더 크다. 가장 먼저 입력한 값이 메모리에 가장 먼저 들어가고, 주소의 값도 가장 크다. 따라서 최근에 저장한 변수의 주소 값이 가장 작다.