• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

변수 메모리 주소

22.02.07 20:10 작성 조회수 226

0

안녕하세요 :D

강의에서 변수를 통해 프로그래머가 번거롭게 메모리 주소를 잡아 데이터를 넣는 과정을 생략하고 변수명을 매개체로 변수에 어떤 데이터를 선언해서 특정 메모리 주소로 간접적으로 값을 넣는 것이라고 이해했는데

예를 들면

int a;

a = 1; 은

a라는 변수가 램에서 메모리 주소를 하나는 갖고 있고 거기에 1를 대입하는 코드인데

이때 a에 매칭되는 메모리 주소는 C언어 시스템에서 자동적으로 정해주나요?

그리고 이를 프로그래머가 직접 잡아 줄 수도 있나요?

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2022.02.07

안녕하세요 :)

네, 그렇습니다. 아래 코드에서 a가 저장된 메모리 주소에 자동으로 1이 할당됩니다.

int a;

...

a = 1;

그리고 변수의 주소를 프로그래머가 직접 할당할 수 있냐는 질문도 주셨는데,

(어셈블리어 등을 통해) 가능은 하겠으나

권장하는 방법은 아닙니다. 

사실, 변수의 존재 이유가 프로그래머가 직접 메모리를 건드리지 않게 하기 위함입니다.

실수로 잘못된 메모리 주소에 접근하거나 잘못된 메모리 주소의 값을 수정하면 

프로그램 전체에 큰 영향을 끼치기 때문이지요. :)

 

답변이 되었길 바랍니다.

감사합니다!

 

 

 

Echapper4님의 프로필

Echapper4

질문자

2022.02.08

덕분에 이해가 잘 되어 흥미가 붙네요. 답변 정말 감사해요!!