#include <iostream>
using namespace std;
int main() {
int age[5] = {19, 18, 21, 20, 17};
int *p = age; // p는 age[0]을 가리킴
cout << "Address: " << p << "\n";
cout << "First value: " << *p << "\n";
return 0;
}
포인터 연산으로 접근:
for (int i = 0; i < 5; ++i) {
cout << "*(p + " << i <<") = " << *(p + i) << endl;
}
요소 접근
인덱스 연산자 [ ] 사용:
int john = age[2]; // 세 번째 요소
전체 예제:
#include <iostream>
using namespace std;
int main() {
int age[5] = {19, 18, 21, 20, 17};
int john = age[2];
cout << "The age of John is: " << john;
return 0;
}
C++ 배열의 장점
빠른 순차 순회
O(1) 임의 접근
낮은 메모리 오버헤드 – 동적 할당 불필요
알고리즘 최적화 용이 (예: 캐시 친화적 루프)
언어 및 표준 라이브러리 내장 지원
C++ 배열의 단점
고정 크기 – 선언 후 크기 변경 불가
인덱스 관리 실수로 인한 범위 초과 오류 위험
선언 크기가 실제 사용량을 초과하면 메모리 낭비
표준 배열은 경계 검사 없음 (안전성 위해 std::array 또는 std::vector 권장)
요약
배열은 한 타입의 요소를 담는 연속된 메모리 블록입니다.
인덱스는 0부터 시작; 마지막 인덱스는 size-1
type name[size];로 선언하고 { } 또는 개별적으로 초기화
1D 배열은 선형 저장, 2D/3D 배열은 행렬/텐서 모델링
배열 포인터는 유연한 인덱싱과 연산 접근 제공
크기가 알려지고 성능이 중요할 때 배열 선택; 그 외에는 std::vector 또는 std::array 선호