C++/포인터 (Pointers)

역참조 (Dereferencing) 모두 알다시피 포인터는 다른 데이터의 주솟값을 저장해놓는 변수입니다. 우리도 주소를 통해서 원하는 위치에 방문합니다. C++에서도 동일합니다. 당연히 포인터의 값으로 원하는 데이터의 주소를 안다면, 그 주소를 통해 해당 위치에 있는 데이터에 접근할 수도 있겠죠? 이것을 우리는 역참조 (Dereferencing) 라고 부릅니다. 그리고 그 방법은 매우 간단합니다. 포인터를 선언할 때, 변수와 다른 부분이 어떤 것이였는지 기억이 나시나요? 변수와는 다르게 포인터의 이름 앞에 asterisk(*) 마크를 붙였습니다. 포인터가 가르키는 값(주소)를 따라가서 있는 위치에 저장된 값을 조회할 때도 동일합니다. 변수명 앞에 *를 붙이기만 하면 됩니다. 선언할 때와 동일한 synta..
C++에서는 & 기호를 통해 데이터의 주소에 접근할 수 있습니다. 값은 16진수 숫자로 반환됩니다. 예시를 보여드리겠습니다. #include using namespace std; int main() { int num{10}; cout
포인터의 선언은 다음과 같은 구조로 진행됩니다. variable_type *pointer_name; asterisk(*)만 없어지면 변수와 동일합니다. 예시 int *int_ptr; double *double_ptr; char *char_ptr; string *string_ptr; 하지만, 중요한 것은 선언과 동시에 초기화를 해 주어야 합니다. 초기화를 하지 않으면 포인터에 쓰레기 주소 데이터가 들어있게 됩니다. 초기화까지 한다면 다음과 같이 됩니다. variable_type *pointer_name {nullptr}; 예시 int *int_ptr {}; double *double_ptr {nullptr}; char *char_ptr {nullptr}; string *string_ptr {nullptr};
Pointer Pointer는 변수입니다. 변수의 구성 요소는 메모리상 위치, 변수 타입, 그리고 값을 가집니다. 포인터는 다른 변수나 함수의 주소를 저장하는 변수입니다. 이게 무슨 뜻이냐면, 변수의 '값' 에 해당하는 부분이 다른 대상의 메모리상 주소라는 것 입니다. 예를 들어 int x {10}; 으로 정수 변수 x를 선언하고 10을 할당했다면, 변수 x를 가르키는 다른 포인터를 선언할 수 있습니다. 그렇다면, 포인터는 왜 사용할까요? 포인터가 이미 존재하는 변수를 가르키는 변수라면, 그냥 원래의 변수를 사용하면 되는거 아닐까요? 포인터 사용의 이유 위의 질문을 이어서 이유를 설명하겠습니다. 맞습니다. 원래의 변수를 직접 사용하면 문제가 없습니다. 하지만, 우리는 종종 프로그램 속에서 복잡한 구조로 ..
Ricky U. Lee
'C++/포인터 (Pointers)' 카테고리의 글 목록 (2 Page)