inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)

4

dhkdxo12

작성한 질문수 43

0

안녕하세요

유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)에서 해설을 해주셨는데

9. C언어(포인터 매개변수) 19:29 문제에서

fn1(&i)에 대한 출력 값은 void 문을 참고하여 50이 들어가서 50 나오는 것이 이해가 되는데

fn2(i)에 대한 출력 값은 void 문을 참고하여 왜 60이 아닌 왜 50이 출력되는지 이해가 되지 않는데

해설 가능할까요?

영상만 듣기로는 이해가 되지 않습니다 ㅠㅠ

python java c 정보처리기사 정보처리산업기사

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. dhkdxo12님.

C언어에서 포인터와 값을 매개변수로 넘기는 함수 동작 방식에 대한 질문을 주셨군요. fn1(&i)fn2(i)의 매개변수 전달 방식 차이 때문에 헷갈리실 수 있습니다. 각 함수의 동작 방식을 정리해드리겠습니다.

포인터와 값에 의한 전달 차이

  1. fn1(&i): 이 함수는 i의 주소값을 함수에 전달합니다. 포인터를 통해 직접 i의 실제 메모리 위치에 접근하여 값을 변경할 수 있습니다. 이렇게 되면 fn1에서 i의 값이 50으로 변경됩니다.

  2. fn2(i): 이 함수는 값 자체를 복사해서 함수에 전달합니다. 즉, i의 현재 값(즉, fn1이 변경한 50)이 복사되어 fn2 함수 내부에서 사용됩니다. 이때 fn2 함수 내에서 메모리 내부의 i 값을 변경하는 것이 아니라, 단지 복사된 값이 함수 내에서 사용되기 때문에 외부의 i 값에는 아무 영향을 미치지 않습니다.

따라서, fn1에서 i가 50으로 변경된 이후에 fn2에서의 호출은 복사된 ‘현재’ 값 50을 사용하여 계속 50을 출력하게 됩니다.

관련 유사 질문 참고

이해를 돕기 위해 유사한 질문과 답변이 있는 게시물을 아래에 공유드립니다:

이 링크를 통해 함수 호출 시 포인터와 값에 의한 차이에 대해 더 깊이 이해하실 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

262 정처기 실기 C언어코딩

0

4

0

정보처리기사 262 실기 Hash(해시) 질문

0

10

2

static 변수 질문입니다.

0

20

2

파이썬 4강 질문입니다.

0

26

2

모의고사 1회 3번문제

0

53

3

41강 30:10

0

30

2

이론 공부법 질문 있습니다.

0

56

2

부모의 생성자 관련 질문

0

29

2

시험지 문제에 필기해도 되나요?

0

36

3

41강 11:23

0

33

2

4강파이썬 질문입니다

0

24

2

try-catch 핸들러명

0

34

2

36강 3:48

0

44

2

35강 18:27

0

38

2

자식 코드 내 super() 생략

0

43

2

출력질문

0

58

2

31강 4:06

0

49

2

파이썬 학습자료가 강의 자료와 다릅니다.

0

78

3

섹션 2 - 9강 강의자료 다운로드 문제

0

58

3

29강 3:09

0

44

2

28강 6:42

0

50

2

22강 17:33

0

48

2

75강 26년 1회 코드 문제 해석 강의 질문 드립니다.

1

59

2

모의고사

0

70

1