[C] 포인터가 헷갈리는 이유! ! 별표(*)가 문제다.
2021.01.09
처음에 포인터를 배울 때 포인터의 개념은 그렇게 어렵지 않았다. 하지만 실제로 사용하다보면 어디선가부터 꼬이기 시작하는데, 특히 이중포인터, 삼중포인터를 사용할 때 코드를 작성하면서도 이게 맞는지 헷갈렸다. 솔직히 헷갈릴 이유가 없는데 왜 그렇게 헷갈렸던 것일까? 그 이유는 별표(*) 의 사용법이 혼동되기 때문이다. 우리는 포인터를 배울 때 * 연산자는 역참조, 즉 실제 값을 가져오며, & 연산자는 주소값을 가져온다고 배운다. 다음 포인터 선언과 사용을 보여주는 코드를 보자. /*포인터 선언*/ int num = 10; int *ptr = # /*포인터의 사용*/ printf("%d \n", *ptr); 포인터의 선언을 할 때도 *연산자를 사용한다. 그리고 포인터를 사용할 때도 *연산자를 사용한다..