• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

6.2 배열기초[2 of 2] array 에서 함수로 전달된 array의 주소가 다르게 표시되는 이유

18.12.06 22:18 작성 조회수 115

0

함수 dosomething으로 전달된 students_scores의 주소를

cout << (int)&students_scores 로 출력하면 나오는 주소는 students_scores의 주소가 맞는지요?

함수로 전달된 students_scores가 이미 pointer인데 여기에 '&'를 붙여서 출력하면 students_scores의 주소가 아닌 함수의 argument주소값이 출력되는 것이 아닌지요?

cout <<(int)students_scores 로 출력하면 main()에서 선언된 students_scores 와 같은 주소가 출력됩니다.

답변 3

·

답변을 작성해보세요.

0

한윤성님의 프로필

한윤성

2019.02.11

5분 28초 이야기하시는 거군요. 저도 질문을 곰곰히 읽어보니 저랑 같은 문제를 겪으신 것같네요.
혹시 cout << (int)&students_scores << endl; 이렇게가 아닌 cout << (int)&students_scores[0] << endl;으로 해서 출력을 하셨나요? 원래 배열자체와 매개변수로 들어간 배열자체의 주소를 찍으면 영상처럼 주소가 다르게 나옵니다. 하지만 배열의 인덱싱을 붙이고 출력을 하니 둘다 같은 주소값을 가지더군요. 혹시 이걸 말하시는 건 아니신지?

0

정민현님의 프로필

정민현

질문자

2018.12.06

빠른 답변 감사합니다. 실시간으로 답변을 달아 주시네요.
(방금 달린 글에 9시간 전이라고 나오는걸 보니 서버 시간이 한국 시간과 시차가 있는가 봅니다. )

0

정확히 어디를 얘기하시는지는 모르겠는데, 포인터 변수도 주소를 저장하는 변수라는 점을 한 번 더 생각해보시는 것이 좋겠네요. 지금 헷갈려하시는 부분을 잘 이해해두시면 이후에는 크게 도움이 될겁니다.