같은 타입의 변수들로 이루어진 집합
값 자체가 아니라, 값의 주소(메모리)를 담는 변수
- 포인터와 배열은 다르다.
- 용량도 다르고, 들어있는 값의 종류도 다름.
- 다만 배열의 시작 주소를 포인터로 변환 가능하기 때문에, 같은 타입의 배열과 포인터는 완전히 호환이 된다.
#include <array> #include <iostream> int main() { int arr[3] = {1, 2, 3}; std::cout << arr[1] << std::endl; // 값 (2) std::cout << *(arr + 1) << std::endl; // 값 (2) std::cout << &arr[1] << std::endl; // 주소 (0x72fff23c140bc) std::cout << arr + 1 << std::endl; // 주소 (0x72fff23c140bc) }
* 예시2
>```cpp
#include <iostream>
int main()
{
int arr[3] = { 10, 20, 30 };
int* ptr_arr = arr;
std::cout << arr[0] << "," << arr[1] << "," << arr[2] << std::endl; // 배열 이름으로 출력
std::cout << ptr_arr[0] << "," << ptr_arr[1] << "," << ptr_arr[2] << std::endl; // 포인터로 출력 1
std::cout << *(arr) << "," << *(arr + 1) << "," << *(arr + 2) << std::endl; // 포인터로 출력 2
}
TCP School - 1차원 배열
http://www.tcpschool.com/cpp/cpp_arrayPointer_oneDimensional
TCP School - 포인터의 개념
http://www.tcpschool.com/cpp/cpp_arrayPointer_pointerIntro