다음과 같이 배열이 선언되고 초기화하였다.
int score[] = {10, 20, 30, 40, 50};- 배열 score의 두 번째 요소에 50을 복사 대입하는 연산
score[1] = 50; // 배열의 인덱스는 0에서 부터 시작하기 때문에 첫 번째 요소는 인덱스 0, 두 번째 요소는 인덱스 1...- 배열 score의 마지막 요소의 값을 int형 변수 myScore에 대입하는 연산
myScore = score[4];- 배열 score의 네 번째 요소의 값을 배열 score의 첫 번째 요소에 복사 대입하는 연산
score[0] = score[3]배열의 저장되어 있는 데이터들을 모두 화면에 출력한다.
int store[3] = {50, 40, 30};
cout << store[0] << endl;
cout << store[1] << endl
cout << store[2] << endl;배열의 크기가 10 개일 때도 앞의 코드처럼 cout 문을 10번 쓰지는 않을 것이다.
이는 "Hello World!" 를 10번 출력하는 것과 달리 대괄호의 인덱스 값이 계쇡 변경되어야 하므로 복사 붙이기도 쉽지 않다.
cout << store[i] << endl; 패턴이 반복되고 i를 0에서 2까지 변경하면 된다.
int score[3] = {50, 40, 30};
for(int i = 0; i < 3; i++)
cout << score[i] << endl; 배열에 저장된 요소들은 다른 배열로 복사를 하는 경우 기반 대입연산자로는 불가능하다. 이를 위해서는 하나의 배열에 저장된 데이터를 하나씩 새로운 배열에 복사하여야 한다.
int source[5] = {70, 80, 90, 100, 50}; // 기존 데이터
int dest[10]; // 새로운 배열
for(int i = 0; i < 5; i++)
dest[i] = source[i]; // dest[0] = source[0],.. dest[4] = source[4]두 배열의 관계를 비교할 때 기본 관계연산자(==, !=, <, >, <=, >=)로는 불가능하다. 두 배열이 각 요소에 같은 값이 저장되어 있는지 아닌지를 확인하는 확인해보자. 두 배열을 비교하기 위해서 먼저 두 배열의 크기가 같아야 한다.
int source[5] = {70, 80, 90, 100, 50}; // 기존 데이터
int comp1[5] = {70, 80, 90, 100, 50}; // 비교할 배열 1
int comp2[5] = {70, 80, 90, 10, 40}; // 비교할 배열 2
bool same = false; // 비교 결과를 저장할 변수
// source 와 comp1 비교 - 무식한 비교
for(int i = 0; i < 5; i++) {
if(source[i] == comp1[i]) same = true;
else same = false;
}
// 여기서 same에 저장된 데이터가 true이면 두 배열을 같은 것, false이면 다른 것
// source 와 comp2 비교 - 무식한 비교
for(int i = 0; i < 5; i++) {
if(source[i] == comp2[i]) same = true;
else same = false;
}배열을 비교에서 source와 comp1의 비교, source와 comp2의 비교를 반복문을 사용하여 표현하였는데 비교하는 데이터만 다를 뿐 프로그램 코드(알고리즘)는 같다. 이렇게 처리 데이터만 다르고 프로그램 코드가 같은 경우를 다루기 위해서 함수 라는 개념이 있다.