변수 선언 시 메모리에 할당되는 과정?
int i; // 정수형 변수 i 선언
포인터란?
- 변수의 메모리 주소를 담고 있는 타입
- 포인터를 통해 변수의 주소에 접근 가능
int i;
int* a = &i; // 변수 i의 주소를 가리키는 포인터 a
string a = "abcda";
string* b = &a;
cout << *b << "\n"; // 포인터 b가 가리키는 주소의 값을 출력, abcda
array to pointer decay
int a[3] = {1, 2, 3};
int* c = a; // 배열의 이름인 a가 포인터 c에 할당됨
cout << c << "\n"; // 배열의 첫 번째 요소의 주소 출력
cout << &a[0] << "\n"; // 배열의 첫 번째 요소의 주소 출력과 동일
cout << c + 1 << "\n"; // 다음 요소의 주소 출력
cout << &a[1] << "\n"; // 다음 요소의 주소 출력과 동일