메모리에 주소값을 저장하는 변수이다. 포인터 변수는 *
를 사용하여 선언하면 된다.
#include <iostream>
using namespace std;
int main() {
// 배열 변수 선언
char name[] = "lee beom seok";
// name 배열의 시작 주소를 가리키고 있음.
char* ptName = name;
// 위 코드랑 똑같다고 보면 됨. 배열할당할 때 메모리에 순차적으로 할당함.
char* ptName = &name[0];
// 출력결과: lee beom seok
cout << ptName;
return 0;
}
포인터 변수에 배열을 집어 넣을시, 포인터 변수에는 배열의 첫 번째 주소값만 들어가 있다. 배열을 선언할 때는 순차적으로 메모리에 로드 되기 때문에 나중에 포인터 변수를 활용하여 뒤에있는 값까지 가져올 수 있다.
#include <iostream>
using namespace std;
int main() {
// 배열 변수 선언
char name[] = "lee beom seok";
char* ptName = name
// 출력결과: l
cout << *(ptName);
// 출력결과: e
cout << *(ptName+2);
ptName = &name[1];
// 출력결과: l
cout << *(ptName-1);
return 0;
}
만일 배열 중에서 하나만 출력하고 싶을 때는 위 예제를 참고하면 된다.
// 참조 대상
int n = 4;
// n과 같은 공간에 살고있는 a.
int &a = n;
// n의 주소를 가지고 있는 a.
int a = &n;