Home C++_Array
Post
Cancel

C++_Array

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번에 중단점 image.png

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
This post is licensed under CC BY 4.0 by the author.