본문 바로가기
Programming/C

[C 프로그래밍] 변수와 자료형 2

by SpiralMoon 2017. 2. 10.
반응형

변수의 정의를 더 자세히 설명해보겠습니다.




저번 시간에 배운 내용대로라면 위 코드는

"정수 자료형 int인 a라는 변수에 정수 데이터 5를 삽입한다."

라고 해석이 가능합니다.


무작정 책부터 보고 공부할 때,

어떤 책은 변수를 "변할 수 있는 수" 라고 서술해 놓았고,

어떤 책은 "데이터를 담는 메모리 공간" 이라고 서술해 놓았기 때문에 우리는 정확한 정의를 알아야 합니다.


위의 두가지 개념의 혼동으로 인해 많은 사람들이 시작부터 어려워합니다.



(네이버 사전)


수학에서의 변수의 개념은 "변할 수 있는 수" 입니다.


하지만 프로그래밍에서의 변수의 개념은

"데이터를 담는 메모리 공간" 에 더 가깝습니다.

(어짜피 프로그래밍 하다보면 스스로 깨닫게 됨)




메모리 공간이라... 그렇다면 과연 변수는 크기에 제한이 없을까요?

변수는 제한 크기를 가지며, 각 자료형마다 크기가 다릅니다.




​ 

위 코드는 a라는 메모리 공간에 숫자를 넣고

a의 값과 a에서 1증가된 값을 출력하는 코드입니다.



실행을 시켜보면 a는 정상적으로 출력되지만,

a에 1을 더한 값은 '음수'값이 되어버린 것을 알 수 있습니다.


이것은 a의 자료형인 int의 사이즈를 초과하여 메모리 상에서 발생하는 문제입니다.


이렇게 제한된 크기를 넘겨버릴 경우 문제가 발생합니다.(매우 중요)


그렇다면 각 자료형의 크기는 몇일까요?



1. 정수, 문자 자료형의 크기


(char 계열은 정수 자료형인 동시에 문자 자료형입니다.)


2. 실수 자료형의 크기




이와 같이 각 자료형은 나타낼 수 있는 최소, 최대 크기가 정해져 있습니다.


다만, 위의 표는 절대적인 것이 아니라

언어, 시스템에 따라서 사이즈가 달라질 수가 있으니 주의하세요!

(예를 들면 임베디드 시스템에서는 int가 2byte가 되는 경우)



정리 :

1. 프로그래밍에서 변수는 "메모리 공간" 이라는 의미에 가깝다.

2. 각각의 자료형은 제한된 사이즈를 가진다.

3. 자료형의 사이즈는 언어나 시스템마다 다를 수 있다.

반응형

댓글