• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

1.7 지역 범위 강의 연습문제 질문입니다

22.11.08 17:36 작성 조회수 250

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

9:47 연습 문제 질문인데요

dosomething함수를 부르고 123을 출력한 다음에 다시 다음 줄 읽을 때는 dosomething함수에서 썼던 x=123;은 중괄호를 벗어나면서 사라져서 그런 것이라고 이해 해도될까요?? 그리고

만약에 함수를 void형이 아니라 int 형으로 바꿔서 return x;으로 바꿔도 똑같이 0으로 출력 되던데 함수의 리턴 값도 저 dosomething(x);줄을 벗어나면

intx(0)으로 초기화 되는 건가요????

만약에 123을 출력하려고 하면 어떻게 해야할가요??

답변 2

·

답변을 작성해보세요.

1

cout << doSomething(x) << endl; 이렇게 하면 나오네요 신기하네요 뭔가 흐음 줄을 벗어나면 값이 바뀌다니

0

강민철님의 프로필

강민철

2022.11.10

dosomething함수를 부르고 123을 출력한 다음에 다시 다음 줄 읽을 때는 dosomething함수에서 썼던 x=123;은 중괄호를 벗어나면서 사라져서 그런 것이라고 이해 해도될까요??

네 맞습니다. x는 지역변수이기 때문입니다.

만약에 함수를 void형이 아니라 int 형으로 바꿔서 return x;으로 바꿔도 똑같이 0으로 출력 되던데

리턴을 할지라도 이미 값 자체가 지역변수이기 때문에 그렇습니다 :)

바로 위 댓글에서는 그 변수 자체를 print 해주신 거구요.