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

임정완님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C++

1.7 지역 범위

매개변수

19.04.11 20:48 작성

·

243

0

처음에 실행되는 함수의 매개변수에 주소값을 참조하도록

해주었는데 main문 안에서 함수를 실행할때 ()안에 &x를 넣어 주었더니 빨간줄이 생성되었습니다. ()안에 x를 넣어주었더니

제대로 값이 실행되었는데요.

질문하자면 함수에 매개변수로 받는 값에 참조값을 넣어주었으면 main문 안에도 &x를 넣어주어야 함수가 실행이 되는거 아닌가요? ()안에 x를 넣어야 실행이 되는 이유를 모르겠습니다..

답변 3

1

섭섭님의 프로필 이미지

2019. 04. 23. 09:55

따배씨7장 함수 ) 참조에 의한 인수전달 
이 강의를 들으시면 해결되실것같습니다.
함수의 선언부분에서 int &x로 인자를 받는 것은
메인안에서 그 함수를 사용할 때 인자로 넣는 어떤
변수의 주소값을 [참조]하겠다는 뜻입니다.
그래서 논리상 그냥 변수를 넣어주는게 맞습니다.

0

임정완님의 프로필 이미지
임정완
질문자

2019. 04. 13. 13:27

include

using namespace std;

void doSomething(int &x)

{

x = 123;

cout << x << endl;

}

int main()

{

int x = 0;

cout << x << endl;

doSomething(x);

cout << x << endl;

return 0;

}

  cout << x + y << endl;      

}

main문 안에 doSomething(&x)를 적으면 오류가 나고 doSomething(x)를 하게 되면 원하던 결과가

나왔습니다. 강의 내용중에 관련있는 강좌가 어떤게 있을까요?

0

홍정모님의 프로필 이미지
홍정모
지식공유자

2019. 04. 13. 02:18

안녕하세요? 질문하실 때는 몇 분 몇 초 인지를 정확히 적어주셔서 도움을 쉽게 받으실 수 있습니다. 일단 적어주신 내용으로만 볼 때는 Address of 연산자와 참조를 혼동하시는 것 같은데 1장에서 다룰 내용은 아니기 때문에 뒷부분 강의도 공부하시는 것이 좋을 것 같습니다.