반응형
포인터는 참조자와 유사하게 주소로 특정 변수나 객체를 참조할 수 있습니다.
포인터변수에는 특정 변수의 주솟값이 저장됩니다.
참조자와 다른 점은 가리키는 대상이 없을 수 있고 가리키는 대상을 언제든 변경할 수 있습니다.
따라서 초기화할 필요도 없겠죠?
변수명 앞에 *를 선언하면 포인터 변수를 지정할 수 있습니다.
정수형 변수 value를 선언하고 100으로 값을 초기화합니다.
그 다음 pointerValue를 포인터 변수로 선언해 value 변수의 주소 참조 값을 저장합니다.
int value = 100;
int* pointerValue = &value;
다음의 예제의 결과를 생각해보세요.
그리고 한번 돌려보시고 메모리 주소를 확인해봅시다.
이번 포스팅에서는 간단하게 다루겠습니다.
이미 좋은 강좌들이 많으니 참고하여 다루어주세요.
#include <iostream> using namespace std; int main() { int value = 100; int* pointerValue = &value; cout << value << endl; cout << &value << endl; cout << pointerValue << endl;cout << *pointerValue << endl; cout << &pointerValue << endl; int** ppointerValue = &pointerValue; } | cs |
null 포인터
포인터는 초기화를 하지 않아도 됩니다.
중간에 가리키는 변수의 주소를 변경할 수 있습니다.
따라서 쓰레기 값이 저장되는 것을 방지하기 위해 null pointer를 할당하는 것입니다.
C++11 표준부터는 다음처럼 nullptr을 사용할 수 있습니다.
모든 포인터 형으로 형변환 할 수 있습니다.
void 포인터
void 포인터는 클래스 템플릿 처럼 자료형을 미리 지정하지 않고 나중에 원하는 형태로 자유롭게 변환할 수 있는 유용한 기능입니다. 고급 개발자들이 추상화를 구현할 때 자주 사용하는 패턴입니다.
반응형
'SW > C++' 카테고리의 다른 글
C++11 : 함수를 이해해 볼까요? (0) | 2018.12.27 |
---|---|
C++11 : 형변환에 대해 알아볼까요? (0) | 2018.12.26 |
C++11 : 참조자와 한정자에 대해 알아볼까요? (0) | 2018.12.18 |
C++11 : 변수와 자료형에 대해 알아볼까요? (0) | 2018.12.18 |
C++11 : 표준입출력에 대해 알아볼까요? (0) | 2018.12.17 |