[C/C++ Tip] 12. 포인터가 헷갈릴 수 밖에 없는 이유: 별(*)의 종류와 정체


[C/C++ Tip] 12. 포인터가 헷갈릴 수 밖에 없는 이유:  별(*)의 종류와 정체

C언어를 배우면서 가장 많이 혼란을 겪는 주제 중 하나가 바로 포인터이다. 특히 * 기호의 다양한 역할이 이 혼란의 주범이다.

이 포스팅에서는 * 기호가 가지는 세 가지 역할을 친절하게 설명함으로써 포인터에 대한 당신의 이해를 한 단계 업그레이드시킬 것이다. 1. 포인터 변수 선언: *의 첫 번째 정체 포인터를 선언할 때 *를 사용하는 이유는, 단순히 "이 변수는 메모리 주소를 저장한다"는 사실을 나타내기 위함이다. int* ptr;라고 선언하면, "ptr은 정수의 주소를 저장하는 변수"라는 의미가 된다.

여기서 *는 포인터 변수의 타입 부분에 포함되어, 이 변수가 "주소"를 저장하는 특별한 종류의 변수임을 알려주는 역할을 한다. 2. 역참조 연산자: *의 두 번째 정체 변수 앞에 *가 사용되면, 그것은 "역참조 연산자"가 됩니다.

역참조 연산자는 포인터가 가리키는 메모리 위치에 저장된 값을 접근하게 해준다. 예를 들어, *ptr = 10;은 ptr이 가리키는 메모리 위치에 10을 ...



원문링크 : [C/C++ Tip] 12. 포인터가 헷갈릴 수 밖에 없는 이유: 별(*)의 종류와 정체