<div style="text-align:left;">제가 이중포인터를 공부하는데 헷갈리는부분이 있어서요</div> <div style="text-align:left;"><br></div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201706/1497411321c35b0315fcf8401c894788cb0259b665__mn659131__w743__h597__f72618__Ym201706.png" width="743" height="597" alt="캡처.PNG" style="border:none;" filesize="72618"></div> <div style="text-align:left;">일단 이것이 일반 포인터만 사용해서 주소값을 바꿀려고 시도했습니다.</div> <div style="text-align:left;"><br></div> <div style="text-align:left;"> <div>function call before[address]: 61abd4, 61abd0</div> <div>function call before[value] : 100, 200</div> <div>function internal [address]: 61abd0, 61abd4</div> <div>function internal [value]: 200, 100</div> <div>function call after[address]: 61abd4, 61abd0</div> <div>function call after[value] : 100, 200</div> <div><br></div> <div>그럼 당연히 swap에서는 바뀌지만 main 안바뀝니다.</div> <div>왜냐하면 address value를 줬기때문이죠</div> <div>그래서 swap 내부안에서 주소값을 swap한다해서 main에 포인터변수에는 영향을 줄수없는것이고요</div> <div><br></div> <div>하지만</div></div> <div style="text-align:left;">이중포인터를 사용하면</div> <div style="text-align:left;"><br></div> <div style="text-align:left;"> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201706/14974115553a3edb2edafd41248f5f190eccc9de60__mn659131__w738__h578__f75134__Ym201706.png" width="738" height="578" alt="캡처2.PNG" style="border:none;" filesize="75134"></div> <div>function call before[address]: 61abdc, 61abd8</div> <div>function call before[value] : 100, 200</div> <div>function internal [address]: 61abd8, 61abdc</div> <div>function internal [value]: 200, 100</div> <div>function call after[address]: 61abd8, 61abdc</div> <div>function call after[value] : 200, 100</div> <div><br></div> <div>이런식으로 서로 swap에서도 main에서도 포인터변수안에 주소값이 서로 바뀌게됩니다.</div> <div>왜냐하면 이중포인터를 써서 main에 있는 포인터변수에 있는 주소값을 가져온것이 아니라 포인터변수의 주소를 가지고왔기때문이죠</div> <div>그래서 *pi01 = pivalue01의 기억공간이 되는거죠 그래서 직접 pivalue01포인터변수에 있는값을 이중포인터로 이용하여 변경시킨다</div> <div><br></div> <div>라고 이해하면 될까요?</div></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.