개발자/컴퓨터공학

변수 및 상수란 무엇인가?

Mosser 2022. 9. 8.
728x90
반응형

프로그래밍 언어에서의 변수란?

프로그래밍 언어에서의 변수(Variable)는 사전을 풀이하면 

 

두번째 의미인 어떤 관계나 범위 안에서 여러 가지 값으로 변할 수 있는 수라고 할 수 있습니다.

 

뜻만 읽으면 정확히 무슨 의미인지 와닿지 않을겁니다.

 

예를 들어보죠.

 

프로그래밍 언어에서의 예제

예를들어 C언어라면 아래와 같은 선언문을 본 적이 있을겁니다.

int weight;

위 코드는 무엇을 의미할까요? 

 

바로 변수 선언문입니다.

 

즉 변수를 선언하겠다는 겁니다. 예를 들어 weight는 우리나라 말로는 몸무게입니다.

 

즉 몸무게라는 변수를 선언하는거죠. 몸무게는 사람마다 다릅니다. 그래서 다양한 값들이 들어갈 수 있겠죠?

 

int weight=75;

위 코드의 의미는 weight라는 변수에 75라는 정수를 집어 넣는다는 의미입니다.

 

int weight=75;
weight=40;

 

그럼 위 코드는 무엇을 의미할까요?

처음에 weight라는 변수를 선언과 동시에 75라는 값으로 초기화 했습니다.

그 다음줄에서 weight 값을 40으로 바꾸죠.

값이 바뀔 수 있으니까 변수라는 이름이 붙은겁니다.

 

파이썬의 경우에는 아래와 같은 코드가 되겠죠?

weight=75
weight=40

이 역시 위 C언어 코드와 똑같은 의미를 가집니다. 

 

그럼 C언어에서 앞에 저 붙어 있는 int라는 건 무엇일까요? 바로 데이터형을 의미하는건데요. 데이터형에 대해서는 따로 게시글을 올리도록 하겠습니다.

 

이번 게시글에서는 일단 변수와 상수가 무엇인지에 대해서 확실히 알아보는게 중요합니다. 나중에는 헷갈릴수도 있거든요.

 

 

상수란?

 

상수는 사전에서도 의미를 아실 수 있듯이, 값이 딱 정해져있습니다. 변수와는 전혀 다른 의미인거죠.

 

그럼 프로그래밍 언어에서는 상수를 어떻게 표현할까요?

 

C언어는 주로 두가지 방법을 이용하여 표현합니다.

#define WEIGHT 75

int WEIGHT=75;

첫번째 줄은 주석처럼보이지만, #define을 이용하여 WEIGHT라는 상수를 선언한 겁니다. 저렇게 선언하게 되면 이제 

 

WEIGHT=80

 

위와 같은 코드를 넣은상태에서 컴파일을 하면 에러가 납니다. 왜냐면 WEIGHT는 상수인데, 이를 변수처럼 써먹으려고 한거거든요!

 

그래서 상수는 절대로 바꿀 수 없다는 점을 알아주시고,

저 두번째 줄의 int WEIGHT=75;는 그냥 프로그래머들만의 약속이라고 생각하시면 됩니다.

하지만, 이는 define문을 이용하지 않았기 때문에 변수처럼 바꿀 수 있습니다.

그래서 웬만하면 상수라면 #define을 이용하여 상수화 하는게 정말 중요합니다.

 

 

상수의 장점은?

상수의 장점이 있다면, 나중에 혹시라도 상수 값을 변경하게 된다면 #define 줄에 있는 값만 바꾸면 나중에는 해당 상수가 사용되는 코드는 모두 바뀌거든요 예를 들면 아래와 같은 상황인거죠.

 

#define WEIGHT 75

int height=170;

# Height * weight #

int result= height * WEIGHT;

printf("result: %d\n",result);

여기에서 만약 result 변수는 height와 WEIGHT의 곱으로 이루어져있죠. 만약에 이 WEIGHT를 바꾸고 싶다면,

#define WEIGHT 80

int height=170;

# Height * weight #

int result= height * WEIGHT;

printf("result: %d\n",result);

위에 있는 define 부분만 바꾸면 되기 때문에 간편하죠!

 

 

그래서 프로그래밍을 하실때는 상수와 변수를 잘 활용하시면 훨씬 깔끔하고 예쁜 코드가 만들어집니다!

반응형

댓글