nullvuild

Bloger @nullvuild

Created Date '2025/03/22 오전 06:26

Modified Date '2025/03/22 오전 07:08

#C언어 #변수 #자료형 #메모리

프로그래밍 언어라면 대부분 변수와 자료형 개념이 있다. C 언어도 마찬가지지만, 차이점은 이 개념들이 메모리와 아주 밀접하게 연결돼 있다는 점이다.


C에서 변수를 선언하는 순간, 메모리 상의 특정 공간이 예약된다. 예를 들어 int a = 10; 이라는 코드를 작성하면, a라는 이름으로 4바이트짜리 공간을 확보하고 그 안에 10이라는 값을 저장한다. 이때 중요한 건, 변수 이름은 실제 값이 저장된 메모리 주소를 가리키는 ‘별명’일 뿐이라는 점이다.


자료형이 중요한 이유

언어마다 다르지만, 비교적 최근에 개발된 다른 언어에서는 변수에 어떤 값이든 쉽게 넣을 수 있지만, C에서는 미리 자료형을 명확히 지정해야 한다. 그 이유는 메모리를 얼마나, 어떻게 써야 할지 컴파일러가 판단하기 위해서다.


Pasted Image

위에서는 32bit 시스템을 예제로 한 내용이다. 16bit에서는 int가 2바이트며, 각 시스템에서 자료형이 의미하는 크기는 다를 수 있다.

C는 개발자가 직접 메모리를 다루는 언어라서, 자료형이 곧 메모리 구조에 대한 설계도 역할을 한다. 잘못된 자료형을 쓰면 프로그램 동작이 꼬이거나 예측할 수 없는 결과를 낼 수 있다. C를 처음 접한 사림이라면, 이게 무슨 말인지 이해가 안되겠지만, 일단은 C에서는 메모리 구조 설계, 관리가 매우 중요하다는 것만 인지해도 좋다.


변수 선언과 메모리 구조의 연결

Pasted Image

int a = 10;라는 선언은 단순한 코드 한 줄 같지만, 내부적으로는 다음과 같은 일이 벌어진다:


  • 4바이트 크기의 메모리 공간이 확보된다.
  • 그 공간에 10이라는 값이 저장된다.
  • 변수 a는 그 공간의 시작 주소를 참조하는 이름이다.
  • 따라서 C에서는 "변수 = 값"이 아니라, "변수 → 주소 → 값"의 구조로 이해하는 것이 중요하다
Nullvuild

Nullvuild

@nullvuild

프로필