C 언어
이 튜토리얼에서는 배열로 작업하는 방법을 배웁니다. 예제를 통해 C++ 프로그래밍에서 배열 요소를 선언, 초기화 및 액세스하는 방법을 배웁니다.
C++에서 배열은 동일한 유형의 여러 값을 저장할 수 있는 변수입니다. 예를 들어,
한 클래스에 27명의 학생이 있고 모든 학생의 성적을 저장해야 한다고 가정합니다. 27개의 개별 변수를 만드는 대신 단순히 배열을 만들 수 있습니다.
double grade[27];
여기, 등급 double
의 최대 27개 요소를 포함할 수 있는 배열입니다. 유형.
C++에서는 선언 후에 배열의 크기와 유형을 변경할 수 없습니다.
<시간>
dataType arrayName[arraySize];
예를 들어,
int x[6];
여기,
int
- 저장할 요소의 유형6
- 배열의 크기C++에서 배열의 각 요소는 숫자와 연결됩니다. 숫자는 배열 인덱스로 알려져 있습니다. 이러한 인덱스를 사용하여 배열의 요소에 액세스할 수 있습니다.
// syntax to access array elements
array[index];
x 배열을 고려하십시오. 우리는 위에서 보았습니다.
<그림>0
로 시작합니다. . 의미 x[0] 인덱스 0
에 저장된 첫 번째 요소입니다. .n
인 경우 , 마지막 요소는 인덱스 (n-1)
에 저장됩니다. . 이 예에서 x[5] 마지막 요소입니다.x[0]
라고 가정합니다. 2120d입니다. 그런 다음 다음 요소의 주소 x[1]
주소는 x[2]
인 2124d입니다. 2128d 등이 됩니다. int
의 크기 때문입니다. 4바이트입니다.C++에서는 선언 중에 배열을 초기화할 수 있습니다. 예를 들어,
// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};
<그림> 선언 중에 배열을 초기화하는 또 다른 방법:
// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};
여기서 배열의 크기는 언급하지 않았습니다. 이러한 경우 컴파일러는 자동으로 크기를 계산합니다.
<시간>
C++에서 배열의 크기가 n
인 경우 , 최대 n개까지 저장할 수 있습니다. 배열의 요소 수. 그러나 n 미만으로 저장하면 어떻게 될까요? 요소 수.
예를 들어,
// store only 3 elements in the array
int x[6] = {19, 10, 8};
여기서 배열 x 크기는 6
입니다. . 하지만 3개의 요소만으로 초기화했습니다.
이러한 경우 컴파일러는 나머지 위치에 임의의 값을 할당합니다. 종종 이 임의의 값은 단순히 0
입니다. .
int mark[5] = {19, 10, 8, 17, 9}
// change 4th element to 9
mark[3] = 9;
// take input from the user
// store the value at third position
cin >> mark[2];
// take input from the user
// insert at ith position
cin >> mark[i-1];
// print first element of the array
cout << mark[0];
// print ith element of the array
cout >> mark[i-1];
<시간>
#include <iostream>
using namespace std;
int main() {
int numbers[5] = {7, 5, 6, 12, 35};
cout << "The numbers are: ";
// Printing array elements
// using range based for loop
for (const int &n : numbers) {
cout << n << " ";
}
cout << "\nThe numbers are: ";
// Printing array elements
// using traditional for loop
for (int i = 0; i < 5; ++i) {
cout << numbers[i] << " ";
}
return 0;
}
출력
The numbers are: 7 5 6 12 35 The numbers are: 7 5 6 12 35
여기에서는 for
을 사용했습니다. i = 0
에서 반복하는 루프 i = 4
로 . 각 반복에서 numbers[i]
을 인쇄했습니다. .
배열의 요소를 출력하기 위해 루프 기반 범위를 다시 사용했습니다. 이 루프에 대해 자세히 알아보려면 C++ Ranged for Loop를 확인하세요.
참고: 범위 기반 루프에서 const int &n
코드를 사용했습니다. int n
대신 범위 선언으로. 그러나 const int &n
다음과 같은 이유로 더 선호됩니다.
int n
사용 단순히 배열 요소를 변수 n에 복사합니다. 각 반복 동안. 이것은 메모리 효율적이지 않습니다. const
을 사용합니다. 실수로 배열의 값을 변경하지 않도록.
#include <iostream>
using namespace std;
int main() {
int numbers[5];
cout << "Enter 5 numbers: " << endl;
// store input from user to array
for (int i = 0; i < 5; ++i) {
cin >> numbers[i];
}
cout << "The numbers are: ";
// print array elements
for (int n = 0; n < 5; ++n) {
cout << numbers[n] << " ";
}
return 0;
}
출력
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
다시 한 번 for
을 사용했습니다. i = 0
에서 반복하는 루프 i = 4
로 . 각 반복에서 사용자로부터 입력을 받아 numbers[i]
에 저장했습니다. .
그런 다음 다른 for
을 사용했습니다. 모든 배열 요소를 인쇄하는 루프.
#include <iostream>
using namespace std;
int main() {
// initialize an array without specifying size
double numbers[] = {7, 5, 6, 12, 35, 27};
double sum = 0;
double count = 0;
double average;
cout << "The numbers are: ";
// print array elements
// use of range-based for loop
for (const double &n : numbers) {
cout << n << " ";
// calculate the sum
sum += n;
// count the no. of array elements
++count;
}
// print the sum
cout << "\nTheir Sum = " << sum << endl;
// find the average
average = sum / count;
cout << "Their Average = " << average << endl;
return 0;
}
출력
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
이 프로그램에서:
sum =0
및 count = 0
.for
을 사용했습니다. 루프를 사용하여 배열 요소를 인쇄합니다. 루프의 각 반복에서 현재 배열 요소를 sum에 추가합니다. .1
기준 각 반복에서 for 루프가 끝날 때까지 배열의 크기를 얻을 수 있습니다.average = sum / count;
로 표시됩니다.
참고: 우리는 for
범위를 사용했습니다. 일반 for
대신 루프 루프.
일반 for
루프를 사용하려면 배열 크기에 따라 반복 횟수를 지정해야 합니다.
그러나 범위가 지정된 for
루프에는 이러한 사양이 필요하지 않습니다.
크기가 10인 배열을 선언하면 배열에는 인덱스 0에서 9까지의 요소가 포함됩니다.
그러나 인덱스 10 또는 10보다 큰 요소에 액세스하려고 하면 정의되지 않은 동작이 발생합니다.
C 언어
동일한 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장할 수 있는 일종의 데이터 구조를 배열합니다. 배열은 데이터 모음을 저장하는 데 사용되지만 종종 배열을 같은 유형의 변수 모음으로 생각하는 것이 더 유용합니다. number0, number1, ..., number99와 같은 개별 변수를 선언하는 대신 숫자와 같은 하나의 배열 변수를 선언하고 숫자[0], 숫자[1], ..., 숫자[99]를 사용하여 표현합니다. 개별 변수. 배열의 특정 요소는 인덱스에 의해 액세스됩니다. 모든 배열은 연속적인 메모리 위치로 구성됩니다. 가장
배열은 동일한 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장합니다. 배열은 데이터 모음을 저장하는 데 사용되지만 배열을 인접한 메모리 위치에 저장된 동일한 유형의 변수 모음으로 생각하는 것이 더 유용합니다. number0, number1, ..., number99와 같은 개별 변수를 선언하는 대신 숫자와 같은 하나의 배열 변수를 선언하고 숫자[0], 숫자[1], ..., 숫자[99]를 사용하여 표현합니다. 개별 변수. 배열의 특정 요소는 인덱스에 의해 액세스됩니다. 모든 배열은 연속적인 메모리 위치로 구성됩니다. 가장 낮은