http://gall.dcinside.com/board/view/?id=programming&no=434382&page=4


void swap(int **dp1,int **dp2)

 

{

     int *temp = *dp1;

     *dp1 = *dp2;

     *dp2 = temp;

}  

 

int main(void)

 

 

    int num1=10, num2=20;

    int *ptr1,*ptr2;

    ptr1=&num1, ptr2=&num2;

    swap(&ptr1,&ptr2);

    printf("%d %d",*ptr1,*ptr2);

    return 0;



}


이렇게 나오는데, 물론 결과값 찍어보면 당연히 20 10이 나오겠지만


결론적으로 보자면 얘네가 가리키는 정말 리얼 값을 바꾸는게 아니고 그냥 주소만 바꿔버린거잖아


그럼 다른 포인터 하나가 기존의 num1의 어드레스를 가리키고 있는게 있었다면, 이 스왑함수를 실행시켜도 결국 10이 나오는거 아님?


도대체 이런 말도안되는 예제는 왜 갖다 쓰는걸까? 이중포인터를 쓰는 예제라해도 진짜 이건 어거지라고 생각함