오늘은 변수에 대해서 포스팅을 해보려고 합니다.

변수에 대한 개념을 알기 이전에 자료형에 대해서 먼저 알고 가면 좋을 것 같아서 자료형에 대해서 먼저 설명드린 이후에 변수에 대한 이야기 해보도록 하겠습니다.

 


 

이전 포스팅에서는 서식 문자를 통해서 데이터를 입출력할 때 서식을 지정해준다고 말씀드렸습니다.

그 때의 제가 만든 표를 보시면 서식 문자 옆에 출력대상 (자료형)이라 써뒀습니다.

제가 같이 써둔 이유는 출력 대상, 즉 데이터의 자료형에 따라서 서식문자를 대응되게 사용해줘야 하기 때문입니다.

 

 

그렇다면 이제 자료형이 뭔지에 대해서 알아야 겠죠?

자료형이라는 것은 말 그대로 자료의 형태를 말합니다.

10진수 정수는 int라는 자료형이고 10진 부동소수점은 float이고, 문자는 char이라는 정도는 숙지하고 계셔야 합니다. 여기서 int, float, char는 각각 interger, float, character라는 의미로 정수, 부동소수점, 문자 자료형을 뜻합니다.

 

기본적으로 자료형은 크게 보면 정수형, 실수형으로 나눠집니다.

데이터가 정수로 이루어져 있으면 정수형 데이터이고,

정수가 아닌 실수로 이루어진 데이터는 실수형 데이터라고 합니다.

한 가지 의아하실 수 있는 점이 있는데 문자형이 왜 정수형에 포함되는지에 대한 부분입니다.

이 부분에 대해서는 아스키 코드에 대해서 알고 계셔야 합니다.

 

아스키 코드는 영문자, 숫자, 기호 등을 2진수에 대응해서 만든 7비트 부호 체계입니다.

(1Byte 중 7비트는 부호를 변환에 사용, 1비트는 오류 검출에 사용한다.)

그렇기 때문에 자료형이 문자형인 'Char' 또한 정수로 데이터를 표현하기 때문에 정수형이라고 부르는 것입니다.

 

비트와 바이트에 대한 개념을 잘 모른다면 다음 강의를 참고하시면 좋습니다

-> 비트코인? 비트토렌트? 왜 이름에 비트가 들어갈까?


 

변수

변수 = "하는 "이다

변수는 변하는 수입니다.

정해진 수인 정수(constant)와는 반대의 개념이죠.

수학적인 개념과 연관지어 생각하면 미지수와 비슷한 놈이라 보면 됩니다.

 

<변수 선언>

변수를 사용하기 위해서는 우선 선언을 해야합니다.

 

int x;

자료형 + 변수명

 

자료형과 변수명을 써주는 것으로 변수 선언을 할 수 있습니다.

선언을 한 뒤에는 x라는 변수는 int형인 데이터를 저장할 수 있는 공간을 가지게 된 것입니다.

쉽게 설명드리자면 변수 선언이라는 것은 선언한 자료형의 데이터를 담을 수 있는 그릇을 생성하는 작업입니다.

만약 int형 변수를 두 개 생성하고 싶으면 다음과 같이 선언하면 됩니다.

 

int x, int y; 또는 int x, y;

 

대입

위에서는 자료형을 설정하고 변수명을 지정해주는 것을 통해서 변수를 만들어봤습니다.

그렇다면 그 이후에 데이터를 넣는 과정은 어떻게 되는지 알려드리겠습니다.

변수는 데이터를 널 수 있는 공간이라고 했습니다.

이 공간에 데이터를 넣는 방법은 간단합니다.

 

변수명 = 데이터;

 

이렇게만 하시면 변수명에 해당하는 공간에 데이터가 들어가게 됩니다.

제대로 들어갔는지 어떻게 확인하냐구요? 그건 이전 강의에서도 계속 사용했던 printf라는 함수를 이용해서 출력해보면 쉽게 확인할 수 있습니다.

 

 

x = 15;를 통해서 변수 x에 15를 대입한 이후

printf함수를 통해서 제대로 출력되는 것을 확인할 수 있습니다.

 


 

+추가 실험

int형 변수 두 개 선언 후 각각 정수형과 문자형 대입이 가능한가? 

두 개 변수를 선언하기 위해서 int x, y;를 사용했습니다.

같은 자료형인 경우 이렇게 간단히 표현하는 것이 편리합니다.

세 개고 네 개고 늘려나가도 선언하기 편하거든요 ㅎㅎ

 

사실 문자는 자료형이 int가 아니기 때문에 int변수에 대입했을 때 문제가 생길 수 있다고 생각이 들 수 있습니다.

하지만 실제로 실행해본 결과 전혀 문제가 없음을 알 수 있습니다.

 

그 이유는 char형인 문자 또한 정수형 데이터이기 때문입니다.

문자 'A'를 int형 변수에 대입하면 아스키 코드에 대응하는 10진수인 65로 저장이 되고, 그 이후 서식문자 %d로 출력할 때는 반대 과정을 거쳐 65가 'A'로 바꾸어 나오게 되는 것입니다.