프로그래밍 언어/C언어

C언어 2. 변수, 상수

닉네임못짓는사람 2020. 7. 9. 22:09
반응형

이번에는 C언어에서 사용되는 변수와 상수에 대해 알아보겠습니다.

 

변수? 상수?


먼저, 프로그래밍 언어에는 변수와 상수라는 것이 존재합니다.

이름만 들어보면 매우 비슷해 보이지 않나요?

하지만 둘 사이에는 분명한 차이가 있는데, 그것은 바로 데이터를 변경할 수 있냐 없냐입니다.

변수와 상수의 경우엔 데이터를 담아두는 상자라고 빗대어 말할 수 있을 것입니다.

변수의 경우 이 상자를 언제든지 열어서 내용물을 바꿀 수 있을 것입니다.

하지만 반대로 상수의 경우에는 한번 물건을 넣고 닫으면, 다시는 내용물을 바꿀 수 없습니다.

 

이러한 두 종류의 공간을 사용하는 이유는 매우 간단합니다.

프로그램에선 코드에 따라서 바꾸어야 하거나, 바꿀 수도 있는 데이터가 있고

한번 정하면 바꿀 필요가 없거나, 바꾸어선 안 되는 데이터가 있기 때문입니다.

 

예를 들어 여러분이 원의 둘레를 구하는 프로그램을 구현한다고 생각해봅시다.

원의 둘레의 공식은 2πr이란 것 정도는 모두 알고 계실 거라 생각합니다.

그럼 이때 이 수식에서 변수는 무엇이고 상수는 무엇일까요?

 

원의 반지름을 의미하는 r은 변수이고 원주율을 의미하는 π는 상수일것입니다.

왜냐하면 프로그램 내에서 사용자는 자신이 원하는 원의 둘레를 구하기 위해 r을 얼마든지

수정할 수 있지만, 반면에 π경우에는 사용자가 절대로 임의로 변경해서는 안되기 때문입니다.

 

만약 π가 변수이고, 이를 사용자가 바꾸면 어떻게 될까요?

당연히 제대로 된 원의 둘레가 구해지지 않을 것입니다.

이는 즉 프로그램이 정상적으로 작동하지 않은 거죠. 때문에 우리는 이러한 상황을 막기 위해서

데이터를 사용하려는 곳에 따라서 변수와 상수를 적절히 나누어 놓아야 할 것입니다.

 

그럼 이제 간단한 코드로 변수와 상수를 만들어서 사용해봅시다.

그리고 C언어 코드를 작성하실 때에는 맨 첫 줄에 #include <stdio.h>를 꼭 적어주셔야 합니다.

이유는 추후에 가서 설명하도록 하겠습니다.

#include<stdio.h>

int main() {
	int var_Num = 10;
	const int CON_NUM = 100;

	printf("변수 : %d, 상수 : %d\n", var_num, CON_NUM);

	var_num = 20;

	printf("변수 : %d, 상수 : %d\n", var_num, CON_NUM);
}

var_num은 variable_number의 약자로 변수를 표현한 것이고

CON_NUM은 const_number의 약자로 상수를 표현한 것입니다.

코드를 보시면 맨 처음 var_num이란 변수 공간을 만들어서 10이라는 숫자를 입력했고,

CON_NUM이란 상수 공간을 만들어 100이라는 숫자를 입력해서 변수와 상수를 만들었습니다.

이렇게 변수를 만든 후 그곳에 맨 처음 값을 넣는 것을 초기화라고 이야기합니다.

이 둘을 출력해 보면, 첫 줄에 변수와 상수가 각각 10, 100이 출력되었고

두 번째 줄에는 변수의 값을 20으로 바꿔서 출력되어 각각 20, 100이 출력됩니다.

그러면 이번엔 상수의 값을 변경해보겠습니다.

#include<stdio.h>

int main() {
	int var_num = 10;
	const int CON_NUM = 100;

	printf("변수 : %d, 상수 : %d\n", var_num, CON_NUM);

	var_num = 20;
	CON_NUM = 200;

	printf("변수 : %d, 상수 : %d\n", var_num, CON_NUM);
}

코드를 위와 같이 변경하고 F5를 눌러봅시다.

그러면 위와같이 상수를 변경하는 부분에 빨간색 밑줄이 그어지고, 실행이 안 되는 것을 볼 수 있습니다.

이것은 상수값을 위에서 한번 지정하였는데, 다시 바꾸려고 했기 때문에 오류가 발생한 것입니다.

오류의 자세한 내용은 아래쪽의 오류 목록을 보시면 확인할 수 있습니다.

이와 같이 변수는 언제든지 값을 변경할 수 있지만, 상수는 값을 다시 설정할 수 없습니다.

 

이 말고도 변수와 상수에는 다른 점이 또 있는데, 코드를 자세히 보시면 둘을 생성하는 부분에서

조금의 차이가 있는 것을 알 수 있습니다.

변수를 생성할 때는 (자료형 변수명 = 값) 또는 (자료형 변수명) 형식으로 코드를 작성해야 하는데

상수를 생성할 때는 const 자료형 상수명 = 값 형식으로 코드를 작성해야 합니다.

자료형이 무엇이냐고 생각하시는 분들도 있을 텐데, 바로 다음 글에서 설명할 테니 걱정할 필요 없습니다.

 

그리고 끝에 있는 ;는 이 줄이 끝났다는 것을 알려주는 마침표 역할을 한다고 생각하시면 되며,

세미콜론이라고 부릅니다. 이것을 쓰지 않으면 마찬가지로 오류가 발생합니다.

따라서 모든 줄이 끝날 때에는 무조건 세미콜론을 붙여주시길 바랍니다.

 

변수와 상수의 명명법


이번엔 변수와 상수의 이름을 정할 때, 주의해야 할 규칙에 대해서 알아보도록 하겠습니다.

1. 영어, 숫자나 특수문자(_, $)만 사용할 수 있다.

2. 대, 소문자가 구분된다.

3. 영어나 _, $로 시작되어야 한다.

4. C언어의 예약어는 사용할 수 없다.

(예약어 : 프로그램 언어 내에서 문법적인 용도로 사용하고 있는 단어, int, printf 등)

5. 공백은 포함할 수 없다.

 

위는 C언어 내에서 정해진 규칙이며, 이를 준수하는 범위에서 프로그래머들

사이에서의 암묵적인 룰이 존재합니다.

1. 변수명은 소문자로 시작하며, 합성어일 때에는 _로 구분,

    첫 단어를 제외한 단어의 첫 글자는 대문자로 한다.

2. 변수, 상수명은 의미 있게 짓는다.

3. 상수명은 모두 대문자로 하며, 합성어인 경우 동일하게 _로 구분한다.

 

변수와 상수에 대한 설명은 이상으로 마치도록 하겠습니다.

글 읽느라 수고하셨고, 다음 글에선 자료형에 대해서 알아보도록 하겠습니다.

감사합니다.

반응형

'프로그래밍 언어 > C언어' 카테고리의 다른 글

C언어 5. 입출력  (0) 2020.07.10
C언어 4. 연산자  (0) 2020.07.10
C언어 3. 자료형  (0) 2020.07.09
C언어 1. 개발 툴 설치  (0) 2020.07.09
C언어 개요  (1) 2020.07.09