Array In Cpp
개요
복합적인 데이터 타입. 동일한 타입인 요소들의 집합.
사용 목적
코드를 효율적으로 만들 수 있음
1
2
3
4
5
| // 동일한 타입의 다른 변수들을 관리
int scort_1 = 0;
int scort_2 = 0;
...
int scort_100 = 0;
|
특징
- 고정된 길이
- 연속된 메모리 주소에 저장
- 인덱스를 통해 접근 가능
- 인덱스는 0부터 시작, 마지막 인덱스는 size-1
- [[Out of Bound(Cpp)]] 체크 안함
- 초기화 필요
- 효율적 데이터 구조
확인하기
1
2
3
4
5
6
7
| #include <iostream>
int main()
{
// 초기화. 동일한 타입
int scores[6] = { 100, 85, 21, 56, 70, 95 };
}
|
7번에 중단점
int type은 메모리 4칸 사용 => { 00000064 / 00000055 / … 0000005f }로 저장된 걸 알 수 있음.
정의와 초기화
배열의 정의
기본 형
1
| ElementType_array_name [constant number of elements];
|
예시
1
2
3
4
5
6
| // 배열의 길이를 상수로 넣은 모습. constnat 한 값만 들어가야한다.
int scores[5];
// const값을 넣은 모습. 없으면 컴파일에러
const int days_in_year = 365;
double temprature [days_in_year];
|
초기화
1
| ElementType_array_name [constant number of elements] (init list);
|
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <iostream>
int main()
{
int scores[5] = { 100, 85, 21, 56, 70 };
//3,5 그리고 0으로 채워짐
int high_scores[10] = { 3, 5 };
const int days_in_year = 365;
//전부 0
double temperature[days_in_year] = { 0 };
//생략) 자동 사이징
int my_array[] = { 1,2,3,4,5 };
}
|
접근
배열 내 요소들에 대한 접근
1
| array_name [element_index]
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #include <iostream>
int main()
{
// 배열 선언
int scores[] = { 100, 85, 21, 56, 70 };
// 접근
std::cout << "first score: " << scores[0] << std::endl;
std::cout << "second score: " << scores[1] << std::endl;
std::cout << "third score: " << scores[2] << std::endl;
std::cout << "fourth score: " << scores[3] << std::endl;
std::cout << "fifth score: " << scores[4] << std::endl;
}
|
1
2
3
4
5
| first score: 100
second score: 85
third score: 21
fourth score: 56
fifth score: 70
|
수정
요소들은 개별적인 주소를 가지기 때문에 변수와 동일하게 값 수정 가능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #include <iostream>
int main()
{
// 배열 선언
int scores[] = { 100, 85, 21, 56, 70 };
// 접근
std::cout << "first score: " << scores[0] << std::endl;
std::cout << "second score: " << scores[1] << std::endl;
std::cout << "third score: " << scores[2] << std::endl;
std::cout << "fourth score: " << scores[3] << std::endl;
std::cout << "fifth score: " << scores[4] << std::endl;
// 수정
std::cout << "Change Value:" << std::endl;
std::cin >> scores[0];
scores[1] = 40;
// 수정 출력
std::cout << "first score: " << scores[0] << std::endl;
std::cout << "second score: " << scores[1] << std::endl;
std::cout << "third score: " << scores[2] << std::endl;
std::cout << "fourth score: " << scores[3] << std::endl;
std::cout << "fifth score: " << scores[4] << std::endl;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
| first score: 100
second score: 85
third score: 21
fourth score: 56
fifth score: 70
Change Value:
10
first score: 10
second score: 40
third score: 21
fourth score: 56
fifth score: 70
|