• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

pnode = pnode->next; 와 pnode->next = pnode;는 같은 것으로 생각해도 될까요?

22.04.27 15:45 작성 조회수 186

0

예를 들어서 pnode->title과 입력받은 title의 값이 맞는지 비교하는 코드에서
 
while (pnode != NULL) { if (strcmp(pnode->title, title) == 0) break; //pnode->next = pnode;// pnode의 next node에다가 pnode를 대입 pnode = pnode->next;//pnode에다가 pnode의 next 노드의 주소를 대입 count++; }
 
이렇게 되어 있을때 pnode = pnode->next; 와 pnode->next = pnode;는 같은 기능을 하는 것으로 생각해도 될까요? 그런 것 같긴 한데 알쏭달송해서 질문해봅니다
 

답변 2

·

답변을 작성해보세요.

1

강민철님의 프로필

강민철

2022.04.27

음.. 의미상 다릅니다.

pnode = pnode->next; 는 pnode->next 를 현재 pnode로 삼겠다는 뜻이고

pnode->next = pnode; 는 현재 pnode를 pnode->next에 저장하겠다는 뜻입니다.

1

열심히 하고 계시네요.

자료구조 부터는 설명 듣는게 오히려 해가 될 수 있고 스스로 디버거로 주소를 아주 열심히 찍어보면서 머리속에 각인이 되는게 좋습니다.

일단 개념만 설명 드리자면

- pnode = pnode->next: pnode가 next로 이동

- pnode->next = pnode: pnode의 다음을 자기 자신으로? 6:00의 pnode->next = new_movie 얘기신가요?

 

 

 

 

호우호님의 프로필

호우호

질문자

2022.04.27

헉 감사합니다! 계속 꾸준하게 해보겠습니다!

void delete_an_item(p_movie* p_head)에서

 pnode->next = pnode; 이렇게 잘못 봤던 것 같습니다!

다시 확인해보니까 pnode = pnode ->next; 이네요 ㅎㅎ..;;

지금 다시보니까 이해됐어요.

pnode->next = pnode 이거는 자기의 다음이 자기를 가리키는? 코드네요.