인프런 커뮤니티 질문&답변

정상훈님의 프로필 이미지
정상훈

작성한 질문수

독하게 시작하는 C 프로그래밍

[필수 실습 문제] 평균값 구하기

정수형태 변수 메모리상 확인방법 및 단순 대입 관련 문의

해결된 질문

작성

·

142

0

문의사항
  1. x = 0; 실행시 x에 해당하는 주소에 데이터 저장이 확인되지 않습니다.
  • 일전 문자열 저장시 메모리 상에서 확인 가능했음 (ex) char szName[32] ={ 0 };)
  1. x = ninput 수행시 독하게 시작하는 프로그래밍 언어 강사님 저서를 보고 확인했을때 주소에 값이 변경되는 것으로 판단되는데 맞을까요?
  • 다른 언어에서 복사의 의미는 값의 주소를 공유한다고 배웠던것 같아 문의드립니다.    감사합니다.

답변 1

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

  1. 메모리 윈도우 주소 입력부분에 그냥 'x'가 아니라 '&x'라고 입력해야 합니다. 배열의 이름은 그 자체가 메모리 주소지만 변수는 주소연산자를 붙여야 합니다.

  2. 주소의 값이 변경된다는 것을 조금 더 풀어서 말하면 해당 주소에 저장된 메모리의 내용(값)이 변경됩니다. 아마도 Java를 공부하면서 참조 개념을 생각하고 있는 것이 아닌가 추정됩니다. class로 정의한 객체의 instance에 대해서는 참조자 형태로 접근합니다. 그러나 int 같은 기본 형식들은 조금 다릅니다. 단순 대입연산 수행 시 주소를 공유(단순 대입에 의한 주소값 복사)하는 것이 아니라 int값 자체를 복사합니다. 참조가 하나 늘어나는 것이 아닙니다. 그리고 C언어에서 참조는 포인터로 구현합니다. 향후 포인터에 대해 공부 할 때도 이 답변을 잘 참고하시기 바랍니다. 감사합니다. 😄

정상훈님의 프로필 이미지
정상훈

작성한 질문수

질문하기