포인터를 공부하는데 어려웠던 점은 첫번째로 포인터의 개념과 두번째로 프로그램내에서 문법 사용(특히 포인터 연산자)이였다.
1. 포인터의 개념 이해
포인터의 개념은 간단하게 아래의 예시로 이해 할 수 있었다.
예시 | 자료형 | |
문자 | A | char |
숫자 | 119 / 3.14159 | int / double |
메모리의 주소 | bfe30846 | int* , double* , ... |
간단하게 C++에서 기본적으로 제공하는 변수의 타입중에 하나로 생각 할 수 있다
문자와 숫자를 담는 메모리와 변수형이 다르듯이
메모리의 주소만들 저장하기 위한 변수형이 따로 있다 (그걸 포인터라고 한다)
2. 포인터 실사용
포인터와 관련된 연산자는 2가지로 *,& 이다
int n = 20 ; // 왼쪽 같이 선언이 되면 변수에 대해 n의 주소와 n의 값이 선언이 된다.
n의 주소를 알려면 &n 를 하면 되고
int* ptr = &n ; // *은 포인터 ptr를 선언할 때 사용한다.
&은 변수(함수)의 주소를 반환하는 연산자이고
*은 포인터를 선언하는 연산자 이다
하나 특기할것은 포인터를 선언할때 변수의 자료형을 같이 선언하게 되어있다.
n의 자료형에 따라
double* ptr = &n; 혹은 void* ptr = &n; 등등으로 선언한다
반응형