우선 포인터에 const 넣는 저의가 궁금합니다.
변수를 두는 것은 고정값이 필요하다고는 하지만 주소값의 경우 솔직히 그 주소가 그것을 꼭 가르켜야할 이유는 없잖아요. 물런 swap 같은 함수에서야 필요하다고 한다면
const int *~~~와
int const*~~~가 다른데 뒤에것은 나름 위에처럼 swap에서 쓴다고 하면은 이해가 되지많
왜 앞에 방식이 있는지 모르겠습니다. 혹시 어디에 쓰이나요. 저 정의를 쉽게 말하자면 *를 이용한 접근은 허락하지 않는다 인데.... 이런 작업이 왜 필요한건지요??
그리고 더블 포인터 swap에 관련되어 질문이 있습니다. 꼭 더블 포인터를 이용하여 swap을 할 필요가 없이 그냥 싱글로만으로도 해결이 가능한데 이렇게 하는 이유가 무엇인가요??
또한 포인터 *연산자와 &연산자가 막 따로 노는데 어떠한 기준으로 이용되지는지 이해가 잘 안됩니다. *는 그것이 가리키는 값에 대한 접근을 할 때 무조건 쓰는 거고 &도 마찬가지라면 printf 같은 경우에 &을 쓰는 경우와 안쓰는 경우가 있던데.. 이것도 그냥 접근을 토대로 이해하면 되나요??
그리고 더블포인터는 무엇을 목적으로 만들어진 건가요?? 지금 배우는 입장에서는 그 쓸모를 정확히 몰라서...
답변 부탁드립니다.
정리하자면
1. const가 포인터에 필요한 이유.
2. 더블 포인터의 존재 이유.
3. 더블 포인터 swap의 경우는 사실상 그냥 싱글포인터 swap 다른 부분이 전혀 없어 보이는데 이렇게 하는 이유는?? 단순히 할 수 있다 이건가요??