일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- array
- vscode
- 알고리즘
- OOP
- 오블완
- predictive analysis
- C++
- Pre-processing
- 티스토리챌린지
- 반복문
- 포인터
- 파이썬
- assignment operator
- 문자열
- Class
- string
- const
- Object Oriented Programming
- 백준
- programming
- Data Science
- 함수
- Deep Learning
- baekjoon
- raw data
- pointer
- pass by reference
- 배열
- Python
- function
- Today
- Total
Channi Studies
[C++] 포인터(Pointer)란? 본문
Pointer
Pointer는 변수입니다.
변수의 구성 요소는 메모리상 위치, 변수 타입, 그리고 값을 가집니다.
포인터는 다른 변수나 함수의 주소를 저장하는 변수입니다.
이게 무슨 뜻이냐면, 변수의 '값' 에 해당하는 부분이 다른 대상의 메모리상 주소라는 것 입니다.
예를 들어 int x {10}; 으로 정수 변수 x를 선언하고 10을 할당했다면,
변수 x를 가르키는 다른 포인터를 선언할 수 있습니다.
그렇다면, 포인터는 왜 사용할까요?
포인터가 이미 존재하는 변수를 가르키는 변수라면, 그냥 원래의 변수를 사용하면 되는거 아닐까요?
포인터 사용의 이유
위의 질문을 이어서 이유를 설명하겠습니다.
맞습니다. 원래의 변수를 직접 사용하면 문제가 없습니다.
하지만, 우리는 종종 프로그램 속에서 복잡한 구조로 데이터를 다루기도 합니다.
예를 들면, 특정 함수 외부에서 선언된 변수에 대해서 해당 함수 내에서 접근하고 싶은 경우가 생깁니다.
그건 불가능합니다. 그 함수 블럭의 Scope 외부에 있기 때문입니다.
그럴 때 우리는 'pass by reference' 방법을 사용하거나, 포인터를 사용해서 데이터를 다룹니다.
또, 배열을 다룰 때에도 포인터는 매우 효율적으로 작용합니다.
Runtime 속에서 동적으로 메모리를 관리할 수 있게 해줍니다.
그 메모리 위치들에는 이름이 없기 때문에 포인터로만 접근할 수 있습니다.
메모리 내부의 특정한 위치에 접근하기에 유용하다고 생각하면 좋을 것 같습니다.
'C++ > 포인터 (Pointers)' 카테고리의 다른 글
[C++] 배열과 포인터의 관계 (Relationship Between Arrays and Pointers) (1) | 2023.12.19 |
---|---|
[C++] 동적 메모리 할당 (Dynamic Memory Allocation) (1) | 2023.12.19 |
[C++] 역참조 (Dereferencing a Pointer) (0) | 2023.12.19 |
[C++] 데이터의 주소에 접근하는 방법 (1) | 2023.12.19 |
[C++] 포인터의 선언 (Declaring Pointers) (0) | 2023.12.19 |