변수(variables)는 프로그램에서 임시로 자료값을 저장할 수 있는 저장 장소이다. 프로그램이란 이러한 저장 장소를 미리 확보해 두고, 필요 시 적당한 값들을 보관하면서 원하는 작업을 수행하는 것이다. 자바와 C 같은 언어에서 이러한 변수는 반드시 사용하기 이전에 먼저 선언을 해야 한다. 이를 변수의 선언(variables declaration)이라 하고, 이 선언은 시스템에게 적당한 공간을 메모리에 확보하라는 것을 의미한다. 물론 베이직과 같은 언어는 선언하지 않고 변수를 사용할 수 있다.
다음은 C와 자바 언어 변수를 선언하는 방법으로 앞에 저장할 동일한 형태의 값들을 정의하는 자료 유형을 기술하고 다음에 사용자가 원하는 변수 이름을 기술한다.
//변수 선언 구조
자료유형 변수이름;
//실제 예
int age = 20;
자료 유형은 저장되는 자료값의 종류를 나타내는 것으로, 이 종류에 따라 저장 공간의 크기와 저장되는 내용이 다르다. 자료 유형에는 int, long, float, double, char, boolean과 같이 그 언어에서 지원하는 자료 유형을 기술한다.
일반적으로 변수는 변수의 이름(name)과 자료 유형(data type), 그리고 저장된 값(value)을 갖는다. 위에서 선언된 변수 age를 살펴보자. 변수 age는 이름이 age이고 자료 유형은 int이며 저장값은 20이다. 메모리 내부를 그림으로 표현하면 다음과 같다.
[ 그림 7.29 ]
C 언어에서 선언된 변수에 저장값을 수정하려면 다음과 같이 "=" 기호의 대입 연산자(assignment operator)를 이용한다.
int i;
i = 3;
다음은 파스칼 언어로 변수 선언과 대입 연산자인 :=을 이용한 소스이다.
var i: integer;
i := 1;
위와 같이 변수 이름을 왼쪽에 놓고 저장하려는 값을 오른쪽에 놓는다. 이러한 문장을 대입문(assignment statement)이라 한다. 대입문에서 왼쪽은 반드시 자료를 저장할 변수이어야 한다. 변수는 대입문을 이용하여 값을 저장하면 그 이전의 값은 사라지고 항상 마지막에 대입한 값만 남는다.