본문 바로가기
c언어

c언어 변수와 상수 알아보기

by 개발자 L 2022. 11. 27.
반응형

c언어 변수와 상수 알아보기

네 안녕하세요, 이번 포스팅에서는 c언어에서 사용하는 요소인 변수와 상수에 대하여 간략하게 알아보는 시간을 가져볼까 해요.

사실 c언어에서의 데이터 처리와 저장은 이 변수와 상수를 이용하여 모든 걸 처리한다고 해도 과언이 아닙니다.

그 이유는 c언어의 로직 구성을 살펴본다면 먼저 변수와 상수를 선언을 한 후에 조건문 등과 여러 함수를 붙여서 결과를 도출하기 때문입니다.

그래서 이번 시간에는 이 중요한 두 요소에 대하여 간략하게 지고 넘어가는 시간을 가져볼까 합니다.

그럼 지금부터 함께 보실까요?

 

1. 변수

c언어에서 변수란 쉽게 말해서 데이터를 저장하는 장소라고 생각하시면 됩니다.

예를 들어 우리가 어떤 값을 계산하는 프로그램을 만든다고 가정을 해봅시다.

그러면 일단 값을 입력해야 하는 장소가 필요하고, 그 결과를 도출하는 장소가 필요하겠죠?

바로 그 장소들이 변수가 되는 겁니다.

그래서 그 변수라는 장소 안에다가 값을 저장을 해서 연산을 한 후에 결과를 도출해내는 것이 기본적인 c언어의 로직이라 할 수 있습니다.

그리고 변수는 값이 계속 바뀐다는 특징을 가지고 있어요.

그래서 우리가 어떤 값을 저장하기 위해 a라는 변수명을 선언했다고 가정을 하면 

그 a라는 변수명 안에 자료가 저장이 되겠죠?

그런데 그 a에 새로운 값을 또 선언을 하게 되면 그 a에 있던 값이 제일 마지막에 선언을 한 값으로 바뀝니다.

그렇기 때문에 우리가 변수를 다룰 때는 무조건 두 개 이상의 변수가 존재할 때 각각 다른 이름으로 선언을 하여 저장을 해야 값이 바뀌는 사고를 초래하지 않는다는 것을 꼭 짚고 넘어가기로 해요 ㅎㅎ

반응형

 

2. 상수

상수란 변수와는 조금 다릅니다.

상수 역시 우리가 흔히 c언어 로직에서 쓰는 요소인데요,

변수와 다른 특징은 하나입니다.

아까 제가 변수는 바뀌는 값이라고 했죠?
그런데 상수는 바뀌지 않는 값입니다.

그래서 아무리 건드려도 절대 바뀌지 않습니다.

그냥 절대불변의 고유한 값이라고 생각을 하시면 됩니다.

그래서 상수는 프로그램 로직을 돌렸을 때 절대 바뀌지 않는다는 특징을 가지고 있지요.

그러면 우리가 이런 질문도 할 수 있겠죠?
"그러면 우리가 변수를 선언을 했을 때 그 변수를 바뀌지 않게 하려면 어떻게 해야 하나요?"

이런 의문이 들 수도 있는데, 이 의문점을 해결할 수 있는 방안들도 존재합니다.

바로 우리가 함수를 구현하기 전에 전처리기에 #define이라고 선언을 하고 값을 고정시키거나,

변수 자료형 앞에 const라는 것을 붙여서 변수를 선언하면 그 값이 고정이 됩니다.

그리고 이러한 과정을 우리는 '변수의 상수화'라고 합니다.

이 방법은 추후에 올라올 포스팅에서 다뤄보도록 할게요.

그럼 간단한 예문을 통해서 변수와 상수를 한 번 맛보기로 체험을 해볼까요?

#include <stdio.h>

int main()
  
{
  float r; // 원의 반지름
  float area; //원의 넓이
  
  printf("원의 반지름을 입력하세요");
  scanf("%f", &r);
  
  area = r * r * 3.14; // r = 변수(값을 입력할 수 있음), 3.14 = 상수(값을 입력할 수 없으며 변경도 불가능함)
  
  printf("원의 면적 : %.2f\n", area);
  
  return 0;
}

이런 식으로 간단히 작성을 해봤습니다.

여기에서 보시면 반지름을 의미하는 변수인 r과 면적을 의미하는 변수인 area가 보이죠?
r에다가는 반지름의 값을 우리가 직접 입력을 할 것이고,

area에서는 우리가 입력한 반지름을 받아서 원의 넓이 공식에 맞춰서 연산을 한 후에 결과를 도출하게 하는 겁니다.

다시 말하면 r은 우리가 어떤 값을 입력하느냐에 따라서 값이 유동적으로 변하고,

area는 우리가 r에 어떤 값을 입력하느냐에 따라 그 결과가 유동적으로 변하겠죠?
하지만 이 중에서도 변하지 않는 값이 하나가 있어요.

그건 바로 3.14입니다.

그 이유는 3.14는 원주율을 의미하는 것이기 때문에 우리가 바꿀 수 있는 수가 아닙니다.

그래서 이미 정해져 있는 값이라 변화시킬 수 없어요.

그래서 이러한 상수의 특성을 사용하면 누가 소스에 변화를 시키려고 하는 것을 막을 수 있어요.

그 이유는 이미 데이터의 값을 변경할 수 없게 지정을 했기 때문에 절대 건들래야 건들 수가 없기 때문입니다.

그래서 우리는 때에 따라서 상수를 적절히 이용을 해주면 가독성도 높아질뿐더러,

데이터의 변형에서도 좀 더 안전하게 할 수 있답니다.

 

여기까지 c언어에서 변수와 상수에 대하여 간단하게 알아보는 시간을 가졌는데요,

다음 포스팅에서는 c언어 자료형에 대하여 알아보는 시간을 가져보도록 하겠습니다.

긴 글 읽어주신 독자분들께 진심으로 감사합니다 ~

반응형

댓글