포인터 변수 가르키는 대상 변경 방법에 관하여 질문

조회수 832회

안녕하세요 윤성우 열혈c 프로그래밍으로 공부중인 학생입니다. 이제 막 포인터에 대하여 배우고 있는데 책에 나와있지 않은 내용에 대하여 궁금하여 질문 드립니다.

포인터 변수를 2개 초기화 한 뒤 서로 가르키는 변수를 바꾸는 내용입니다. 이게 답지의 내용입니다.

{ int num1 = 10, num2 = 20; int * ptr1 = &num1; int * ptr2 = &num2; int * temp; *ptr1 += 10; *ptr2 -= 10;

temp = ptr1;
ptr1 = ptr2;
ptr2 = temp;
printf("%d %d \n", *ptr1, *ptr2);
return 0;

}

제 생각에는 가르키는 변수는 고정되어 있기 때문에 포인터 변수에 바로 재지정해도 상관없다고 생각 하여 아래와 같이 짰습니다.

{ int num1 = 10, num2 = 20; int * ptr1 = &num1; int * ptr2 = &num2; *ptr1 += 10; *ptr2 -= 10;

ptr1 = &num2;
ptr2 = &num1;
printf("%d %d \n", *ptr1, *ptr2);
return 0;

}

둘다 정상적으로 출력이 됩니다.

질문 : 혹시 제가 한 방식대로 하면 어떠한 문제점이 있을지 궁금합니다.

답변주시면 매우 감사하겠습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)