상수와 변수
컴퓨터는 빠르고 정확한 계산을 수행합니다. 따라서 수를 이용한 연산이 기본이죠, 프로그래밍 학습의 기본인 상수와 변수의 개념 그리고 그것의 의미와 특성에 대해 알아야 합니다.
아래의 코드를 직접 작성하고 실행해 봅시다.
#include <stdio.h> main () { printf("5 * 4 - 10 = 10\n"); int a=5, b=4, c=10; printf("%d * %d - %d = %d\n", a, b, c, a * b - c); a = a * b - c; printf ("a의 메모리 [%d] = %d\n", &a, a); }
실행결과
위 코드를 실행하면 5*4-10의 연산 결과가 나옵니다.
(만약 사진이 보이지않는다면 새로고침 해주세요)
위의 코드를 처음 접할땐 이해하기 힘든것이 정상이며 정확하게 이해하기 위해선 상수와 변수에 대해 알아야 합니다.
- 4행에서 말그대로 '5 * 4 – 10 = 10' 자체를 출력합니다. 또한 \n 은 줄 바꿈을 의미하고요.(Enter의 줄 바꿈과 동일합니다. )
- 5행에서 a,b,c를 각각 5,4,10으로 ‘대입’합니다.
- 6행에서 printf(“%d * %d – %d = %d\n”, a, b, c, a * b – c); %d는 a로 %d는 b로
%d는 c로 %d는 a * b – c로 각각 대입 되어 출력 된것 입니다. - 7행에서 5인 a를 a * d – c로 대입 했습니다. (5에서 10이됨)
- 8행에서 printf(“메모리[%d] = %d\n”, &a, a);로 &a는 a의 주소를 나타냅니다.
- & – 변수 이름 앞에 &를 붙이면 그 변수의 주소를 나타냅니다. 예를 들어 변수 a의 값이 6이고 0001에 저장되어 있다면 &a의 값은 0001이 되는 거죠, 즉 &는 변수가 어디에 저장되어 있는지를 나타냅니다.
상수
위 프로그램과 같이 4, 5, 10과 같은 데이터를 직접 표현하거나 저장할 수 있고 4행과 5행의 4, 5, 10과 같이 수나 문자와 같은 값 자체를 상수(constant)라고 합니다.
상수의 종류
변수
위 프로그램의 a, d, c에는 수나 문자와 같은 값(상수)이 저장됩니다.
이처럼 언제든지 다른값을 저장할 수 있는 이름을 변수(variable)라고 합니다.
이처럼 언제든지 다른값을 저장할 수 있는 이름을 변수(variable)라고 합니다.
7행에서 a * b – c의 값으로 a의 값이 변경되는데, 이처럼 변수에 저장되는 값은 변경할 수 있습니다.
8행에서 변수 a가 사용하는 메모리 영역의 주소와 a 변수가 사용하는 주소에 저장되어 있는 값을 출력합니다.
또한 변수에 저장하는 값의 종류와 저장되는 범위(크기)에 따라 변수를 다르게 사용해야 하는데, 처음 변수를 지정하는 것을 변수의 선언이라고 합니다.
변수의 선언과 표현 (A는 값이 변할 수 있으므로 변수, A안의 1, 2, 3은 상수가 됩니다. )
'='와 '=='의 차이
등호(=)라고 알려진 연산자는 '같다'의 의미이지만, 우변의 값을 좌변에 '대입'하라는 의미도 있습니다. C언어에서는 이렇게 모호한 표현을 막기 위해 '대입'은 '=', '같다'는 '=='로 표현합니다.
추가 - 변수의 종류(알아만 두자!)
변수는 값을 저장하기 위한 메모리(RAM)의 일부 공간입니다. 즉 변수로 지정된 이름은 특정 메모리 공간을 가리키며, 이 공간이 효율적으로 사용될 수 있도록 적당한 자료형으로 선언 되어야하죠.
메모리 - 컴퓨터는 변수의 각종 데이터들을 컴퓨터의 메모리, 즉 RAM 이라는 특별한 기억공간에 이를 기록합니다.
다음 토픽에서는 자료형에 대해 배워 봅시다.