공부다시시작 ㅎㅎ
문제
이런코드가있다.
그뒤로는 위에 사진과 같은 문제임.
문제답안지에는
// 추가코드 //
int * temp;
temp=*dptr;
*dptr = ptr2;
ptr2 = temp;
dptr = &ptr2;
=======================
이런식으로 코드를 추가해서 문제를 풀었음.
근데내가풀때는
*dptr = &n2;
ptr2 = &n1;
dptr = &ptr2;
이렇게해서 풀었음
이대로풀어도 문제에서 요구한 ptr1을 건들지도않았고
내가이해한게 맞는진몰라도..
굳이저렇게 temp 변수를 새로만들어서 복잡하게 하는이유가있나?
내가푼데로 저렇게하면 그림처럼 되는게아니라
답은 제대로나와도 다른건가?
문제에서 요구한건 n1, n2(value)에 직접 액세스하지않고 포인터들만 가지고 처리하길 바래서 답이 저랬던거 같네요. 글쓴이님은 값에다가 직접 포인터를 옮긴거라 예제에서 원하는답은 아닌듯..
포인터 ptr1만 터치하지말라고하고 다른조건 신경쓸게없어서 저리한건데.. 문제가 그런의도라면.....
위 예제에 코드를(추가,변경,삭제) 는 안된다고 나와있네요
흐린바다님이 하신건 코드를 변경한거예요
인티저 ptr 1 = &n1; 이라는 원형을 지금 ptr 2 = &n1; 로 코드변경하신거
예제로나온 코드를 변경삭제를하지말고 그틀에서 추가를해서 하라함.. 추가하지말라곤안함
나는 변경하지말라는게 예제문을 고치지말라는뜻인줄알았음..
그런데 irene님말대로라면 답안에서제시한 dptr = &ptr2;또한 원형변경인데?
솔직히 뭐..문제 꼬투리잡는 질문이지 그닥 모르거나 어려워서 질문하고 그런건 아니지만
넌 주소만 바꾼거고, 저 정답은 실제 n1 n2 의 값을 바꾼거고.
왼손에 사과 오른손에 귤을 쥐고, 그 둘을 바꿔 담으라고 했더니 팔을 바꿔 끼우셨다는거지.
쏘리 착각함.