인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

kimoon Hong님의 프로필 이미지

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

(기출) 2024년 3회 기출문제 - 이론 포함

1:03:35 문제

해결된 질문

작성

·

56

0

1:03:35
&n1 이 value가 3이고 주소값이 n2가 되는데
왜 마지막에 while 반복문 때 순서가
n1 -> n3 -> n2가 되나요?

n1.next가 n2 주소값을 갖는거 아닌가요?

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

안녕하세요,

혹시 "n1.next가 n2 주소값을 갖는거 아닌가요?" <- 이 부분이 어디에서 말씀하시는 걸까요?

 

코드 자체만 보면,

func를 수행하고 나면 원래 가지고 있던 값에서 변하게 됩니다.

n1의 값이 3으로 변경되고, n3의 값이 1로 변경됩니다.

최종적으로는 n1(값 3) -> n3(값1) -> n2(값2)가 됩니다.

그래서 출력값이 3 1 2가 된다는 것입니다.

 

어느 부분에서 헷갈리시는지 말씀해주시면 자세하게 다시 설명드리겠습니다!

0

인프런 AI 인턴님의 프로필 이미지

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

질문해주신 내용은 링크드 리스트와 포인터 활용에 있어 일반적으로 혼동을 일으킬 수 있는 부분입니다. &n1 은 실제 특정 노드의 주소를 가리키고, 그 노드의 필드 중 하나가 다음 노드의 주소를 가지고 있음을 나타냅니다.

  • n1.nextn2의 주소를 가질 수 있지만, n2nextn3를 가리킬 수 있다는 점에서, 이를 통해 노드가 어떤 순서로 연결되었는지를 나타냅니다.

  • while 반복문은 일반적으로 currentNodenextNULL일 때까지 반복됩니다. 이 과정에서 각 노드의 next 필드가 지시하는 다음 노드로 이동하게 되고, 이로 인해 n1 -> n3 -> n2와 같은 흐름이 나타날 수 있습니다.

관련하여 유사한 질문과 답변이 있으면 도움이 될 만한 링크를 제공해드리겠습니다. 다음 링크를 참고하여 더 상세한 내용을 이해하실 수 있습니다:

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

kimoon Hong님의 프로필 이미지
kimoon Hong
질문자

n2 구조체 next에 어떻게 n3주소가 들어갈 수 있죠?