본문 바로가기
C언어

세이버의 C언어 강의 6강_변수란 무엇인가

by 비원(Be one) 2018. 10. 21.
반응형

여러분 안녕하세요. 세이버입니다.

 

저번 강을 끝으로 printf 함수를 이용한 출력에 대해서 알아보았습니다.

그래서 원래 이번 강에서는 입력하는 법을 알려보려고 했는데요,

입력을 하기 위해서는 우선 변수라는 개념을 알아야 하기에 변수를 먼저 배워보도록 합시다.


1. 변수란 무엇인가

변수(variable)의 뜻은 '변하는 수'입니다.

 

C언어에서 계산을 할 때 데이터를 잠시 저장해야 할 때가 많습니다.

저장을 하기 위해서는 메모리 공간이 필요한데, 메모리 공간을 변수라고 합니다.

 

그런데 왜 변수(변하는 수)라고 할까요??

변수는 가변적인 공간이기에 언제든 저장된 값을 바꿔줄 수 있어 변수라고 합니다.

 

조금 이해를 돕기 위해 예를 들면 변수를 유리컵이라고 합시다.

물(값 1)이 든 유리컵에 우유(값 2)를 넣고 싶으면 어떻게 해야 할까요??

새로운 유리컵을 사야 할까요???

돈이 많으신 분들은 유리컵을 새로 살 수도 있지만, 저 같은 소시민은 그럴 수 없죠...

 

금수저가 되고 싶어라...

보통 사람들은 물이든 유리컵을 비운 후 우유를 담을 것입니다.

이렇게 유리컵 하나에 물이든 우유든 다양한 걸 담을 수 있습니다.

그렇기에 변수를 가변적 저장공간(값이 변할 수 있는 저장공간)이라고 합니다.

 

2. 변수 선언 방법

이제 변수가 뭔지 알았으니 변수를 사용해봅시다.

 

변수를 사용하기 위해서는 우선 변수를 선언해서 사용한다고 알려야 합니다.

변수를 선언하는 방법은 다음과 같습니다.


변수 선언법

 

[자료형] [변수이름];


자료형과 변수 이름만 지정하면 되는 간단한 구조입니다.

 

자료형의 구성은 다음과 같습니다.

char 정수형 문자 (1바이트)
short 숫자 (2바이트)
int 숫자 (4바이트)
long 숫자 (4바이트)
float 실수형 실수 (4바이트)
double 실수 (8바이트)
long double 실수 (8바이트)

바이트는 자료형의 크기를 구할 때 사용되지만, 초보자 분들은 딱히 외울 필요 없습니다.

문자는 char, 정수는 int, 실수는 float/double 만 기억하셔도 무방합니다.

 

변수 이름은 마음대로 정하되, 몇 가지 규칙이 있습니다.


변수 이름의 규칙

1. _를 제외한 특수문자(!, ?, *, 공백 등)를 사용하지 않는다. (po_ci (0), poci? (x), po ci(x))

2. 변수 이름 앞에 숫자를 넣지 않는다. 앞에 빼고는 어디든 넣을 수 있다. (poci2(o), 2poci(x))

3. 대소문자를 구분한다. (poci POCI Poci pOci)

4. 예약어(int, float 등)를 변수 이름으로 사용할 수 없다. (int int (x), int float (x))


위의 규칙만 지키시면 어떤 변수 이름도 사용할 수 있습니다.

예를 들어 int a;a라는 이름을 가진 정수형 변수를 의미합니다.

char p;p라는 이름을 가진 문자형 변수를 의미합니다.

 

그리고 변수 선언에는 한 가지 규칙이 있습니다.

변수를 선언할 때는 반드시 main 함수 맨 앞에다가 해야 합니다.

이유를 간단하게 말하면 C언어는 절차지향이기에 변수를 앞에다가 선언해야 미리 공간을 정해둘 수 있기 때문입니다.

 

처음엔 조금 어렵게 느껴지실 수도 있지만, 여러 번 반복하다 보면 익숙해지실 겁니다.

 

 

3. 변수를 사용해보자.

그럼 이제 변수를 사용해보도록 하겠습니다. 변수를 사용해서 계산을 해봅시다.

 

코드를 보시면 5~7행에 a, b, c의 이름을 가진 정수형 변수 3개를 선언했습니다.

그런 다음 8행과 9행에서 ab에게 각각 10, 20이라는 값을 넣었습니다.

이것이 변수에 값을 넣는 방법입니다.


변수에 값을 넣는 방법

 

[변수이름]=[넣을 값];


그런 다음 12행은 ab의 값을 더해서 c에 넣으라고 뜻입니다.

여기서 주의할 점은 수학에서 a+b=c라고 하는 것과 달리, 프로그래밍 언어에서는 c=a+b라고 하는 것입니다.

뜻은 위에서 말한 거와 같이 변수 a에 든 값과 변수 b에 든 값을 더해서 변수 c에 넣으라고 뜻입니다.

 

그런 다음 14행에서 서식문자를 사용해서 c변수의 값을 출력하라고 합니다.

만약 여기서 'c'라고 한다면 c를 변수가 아닌 문자로 판단해 다른 값이 나올 수 있으니 주의합시다.

 

그림으로 정리하면

 

이런 식으로 동작합니다.

 

다른 자료형과 다른 값으로 한 번씩 실행해보시길 추천드립니다.

말했듯이 반복이 제일 중요합니다.

 

마지막으로 하나만 더 말씀드리자면, 위에서 말했다시피 변수의 값은 언제든 변할 수 있습니다.

 

5행에서 정수형 변수 a를 선언하고 7행에서 a10을 넣었습니다.

9행에서는 a의 값을 출력한 후, 11행에서 a의 값을 20으로 변경했습니다.

그런 다음 13행에서 변경된 a의 값을 출력해주니 다음의 결과값을 출력하는 것입니다.

 

처음에는 복잡해 보일 수 있지만, 차근차근 흐름을 보다 보면 쉽게 접근할 수 있습니다.

 

4. Tip

이 부분은 팁으로 안 보고 넘어가셔도 무방합니다. 근데 보면 좋아요.

 

우선 한 가지 팁은 같은 타입의 변수를 여러 개 선언할 때의 팁입니다.

이렇게 쭉 변수를 여러 개 지정할 수도 있는데요.

저런 식으로 변수를 선언하면 변수의 수가 많아질수록 귀차니즘이 증가한다는 단점이 있습니다.

10개만 선언해보시면 느낄 겁니다.

 

인간은 귀찮음을 피하기 위해 진화한 동물이기에 조금 덜 귀찮은 방법을 만들었습니다.

 

이렇게 타입은 하나로 하고 변수 이름만 쭉 나열하는 방법으로 조금이나마 귀찮음을 해소할 수 있습니다.

하지만 변수가 많아질수록 귀차늠이 많아지는 것 똑같음...

 

다음 팁은 값을 넣을 때의 팁입니다.

이렇게 4개의 변수에 값을 하나씩 넣을 수도 있지만

이것도 변수의 수가 많아질수록 귀찮아집니다.

 

그래서 이렇게 선언과 동시에 값을 넣을 수도 있습니다.

이것을 초기화라고 합니다.

 

이러한 팁들을 활용하셔서 조금 더 전문적으로 보일 수 있도록 합시다.


이번 강에서는 변수를 배워보았습니다.

변수는 프로그래밍 언어에서 매우 중요한 개념이므로 꼭 숙지해주시길 바랍니다.

다음 강에서는 변수를 이용해서 입력하는 법을 배워보도록 하겠습니다.

 

오늘도 수고하셨습니다.

 


정리

- 변수 : 값을 저장하는 공간

- 변수의 값은 언제든 변할 수 있다.

- 변수 선언 방법 : [자료형] [변수이름];

- 변수 이름 규칙

    1. _를 제외한 특수문자(!, ?, *, 공백 등)를 사용하지 않는다. (po_ci (0), poci? (x), po ci(x))

    2. 변수 이름 앞에 숫자를 넣지 않는다. 앞에 빼고는 어디든 넣을 수 있다. (poci2(o), 2poci(x))

    3. 대소문자를 구분한다. (poci POCI Poci pOci)

    4. 예약어(int, float 등)를 변수 이름으로 사용할 수 없다. (int int (x), int float (x))

- 변수 선언은 꼭 main 함수 맨 앞에다가 할 것

- 변수에 값을 넣는 방법 : 변수이름=넣을 값;


강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.

궁금하신 점이나 질문은 댓글이나 메일을 남겨주세요.

 

poci5003@gmail.com

 

반응형