#include <stdio.h>
 
struct Node {
 int value;
 struct Node* next;
};
 
void func(struct Node* node){
  while(node != NULL && node->next != NULL){
     int t = node->value;
     node->value = node->next->value;
     node->next->value = t;
     node = node->next->next;
  }
}
 
int main(){
  struct Node n1 = {1, NULL};
  struct Node n2 = {2, NULL};
  struct Node n3 = {3, NULL};
  
  n1.next = &n3;
  n3.next = &n2;
 
  func(&n1);  
 
  struct Node* current = &n1;
 
  while(current != NULL){
    printf("%d", current->value);
    current = current->next;
 }
 
 return 0;
 
}
n1 - > n3 -> n2 이런 형식으로 바라보게 되는데
func 안에 while 문 안에서 n1 의 값이 3 이되고 n3 의 값이 1 이 되고 탈출하게됨
그리고 current 는 n1 이 되니
3, 1, 2 이 순서대로 출력하게 됨
312
한줄평
포인터 헷갈리지만 말자
출처
'정보처리기사' 카테고리의 다른 글
| 2024년 정보처리기사 실기 3회 11번 문제 공부 및 풀이 (0) | 2025.10.02 | 
|---|---|
| 2024년 정보처리기사 실기 3회 10번 문제 공부 및 풀이 (0) | 2025.10.02 | 
| 2024년 정보처리기사 실기 3회 7번 문제 공부 및 풀이 (0) | 2025.09.27 | 
| 2024년 정보처리기사 실기 3회 2번 문제 공부 및 풀이 (0) | 2025.09.27 | 
| 2024년 정보처리기사 실기 2회 18번 문제 공부 및 풀이 (0) | 2025.09.25 |