C++에서 배열은 유사한 데이터 유형의 여러 값을 연속적인 메모리 위치에 저장하는 데 사용되는 데이터 구조입니다.
예를 들어 , 4명 또는 5명의 학생의 성적을 저장해야 한다면 5개의 다른 변수를 생성하여 쉽게 저장할 수 있지만 100명의 학생의 성적을 저장하거나 500명의 학생을 저장하려는 경우 해당 수의 변수를 생성하는 것이 매우 어려워집니다. 그리고 그들을 관리하세요. 이제 필요한 크기의 배열을 생성하기만 하면 쉽게 할 수 있는 배열이 등장했습니다.

C++의 배열 속성
- 배열은 인접한 메모리 위치에 저장된 동일한 데이터 유형의 데이터 모음입니다.
- 배열의 인덱싱은 다음에서 시작됩니다. 0. 이는 첫 번째 요소가 0번째 인덱스에 저장되고 두 번째 요소가 1번째 인덱스에 저장된다는 의미입니다.
- 배열의 요소는 해당 인덱스를 사용하여 액세스할 수 있습니다.
- 배열이 선언되면 그 크기는 프로그램 전체에서 일정하게 유지됩니다.
- 배열은 여러 차원을 가질 수 있습니다.
- 배열의 크기(바이트)는 sizeof 연산자에 의해 결정될 수 있으며 이를 사용하여 배열의 요소 수를 찾을 수도 있습니다.
- 인접한 주소를 빼면 배열에 저장된 요소 유형의 크기를 찾을 수 있습니다.
C++의 배열 선언
C++에서는 먼저 데이터 유형을 지정한 다음 배열 이름과 크기를 지정하여 배열을 선언할 수 있습니다.
data_type array_name[Size_of_array];>
예
int arr[5];>
여기,
- 정수: 배열에 저장될 데이터 유형입니다. char, float 및 double과 같은 다른 데이터 유형을 사용할 수도 있습니다.
- 도착: 배열의 이름입니다.
- 5: 배열의 크기는 5개의 요소만 배열에 저장할 수 있음을 의미합니다.

C++에서 배열 초기화
C++에서는 다양한 방법으로 배열을 초기화할 수 있지만 배열을 초기화하는 가장 일반적인 몇 가지 방법에 대해 설명하겠습니다. 선언 시 또는 선언 후에 배열을 초기화할 수 있습니다.
1. C++에서 값을 사용하여 배열 초기화
값으로 배열을 초기화했습니다. 중괄호 '{}'로 묶인 값이 배열에 할당됩니다. 여기서 1은 arr[0]에 저장되고 2는 arr[1]에 저장됩니다. 여기서 배열의 크기는 5입니다.
int arr[5] = {1, 2, 3, 4, 5};>2. C++에서 크기 없이 값을 사용하여 배열 초기화
값으로 배열을 초기화했지만 배열의 길이를 선언하지 않았습니다. 따라서 배열의 길이는 중괄호 안의 요소 수와 같습니다.
C의 부울
int arr[] = {1, 2, 3, 4, 5};>3. 선언 후 배열 초기화(루프 사용)
배열을 선언한 후 루프를 사용하여 배열을 초기화했습니다. 이 방법은 일반적으로 사용자로부터 입력을 받거나 배열의 각 인덱스에 요소를 하나씩 할당할 수 없는 경우에 사용됩니다. 요구 사항에 따라 루프 조건을 수정하거나 초기화 값을 변경할 수 있습니다.
for (int i = 0; i arr[i] = value; }>
4. C++에서 부분적으로 배열 초기화
여기서는 크기가 '5'이고 값이 '1'과 '2'인 'partialArray' 배열을 선언했습니다. 따라서 이 값은 처음 두 인덱스에 저장되고 나머지 인덱스에는 '0'이 저장됩니다.
int partialArray[5] = {1, 2};>5. C++에서 0으로 배열을 초기화합니다.
중괄호 안에 '0'을 지정하면 모든 요소가 '0'으로 배열을 초기화할 수 있습니다. 이 방법을 사용하여 '2'와 같은 다른 값으로 배열을 초기화하려고 하면 '2'가 0번째 인덱스에만 저장되는 경우에만 0이 발생합니다.
int zero_array[5] = {0};>C++에서 배열 요소에 액세스
배열의 요소는 배열의 이름을 지정한 다음 배열 첨자 연산자 []로 묶인 요소의 인덱스를 지정하여 액세스할 수 있습니다. 예를 들어 arr[i]입니다.
예제 1: 배열 요소에 액세스하는 방법을 설명하는 C++ 프로그램
C++ // C++ Program to Illustrate How to Access Array Elements #include using namespace std; int main() { int arr[3]; // Inserting elements in an array arr[0] = 10; arr[1] = 20; arr[2] = 30; // Accessing and printing elements of the array cout << 'arr[0]: ' << arr[0] << endl; cout << 'arr[1]: ' << arr[1] << endl; cout << 'arr[2]: ' << arr[2] << endl; return 0; }> 산출
arr[0]: 10 arr[1]: 20 arr[2]: 30>
배열 요소 업데이트
배열의 요소를 업데이트하려면 배열 첨자 연산자 안에 포함된 업데이트하려는 인덱스를 사용하고 새 값을 할당할 수 있습니다.
arr[i] = new_value;>
C++에서 배열 탐색
루프를 사용하여 배열을 탐색할 수 있습니다. C++에서 인덱싱을 사용합니다. 먼저 2의 배수로 'table_of_two' 배열을 초기화했습니다. 그 후 배열 인덱싱은 0부터 시작하므로 0에서 9까지 for 루프를 실행합니다. 따라서 인덱스를 사용하여 배열에 저장된 모든 값을 인쇄합니다.
예제 2: 배열을 탐색하는 방법을 설명하는 C++ 프로그램
C++ // C++ Program to Illustrate How to Traverse an Array #include using namespace std; int main() { // Initialize the array int table_of_two[10] = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 }; // Traverse the array using for loop for (int i = 0; i < 10; i++) { // Print the array elements using indexing cout << table_of_two[i] << ' '; } return 0; }> 산출
2 4 6 8 10 12 14 16 18 20>
C++의 배열 크기
C++에서는 배열 크기를 찾기 위한 Java와 같은 길이 함수가 없지만 sizeof() 연산자를 사용하여 배열의 크기를 계산할 수 있습니다. 장난. 먼저 메모리에서 전체 배열이 차지하는 크기를 찾은 다음 이를 배열에 저장된 요소 유형의 크기로 나눕니다. 그러면 배열에 저장된 요소의 수를 알 수 있습니다.
data_type size = sizeof(Array_name) / sizeof(Array_name[index]);>
예제 3: 배열의 크기를 찾는 방법을 설명하는 C++ 프로그램
C++ // C++ Program to Illustrate How to Find the Size of an // Array #include using namespace std; int main() { int arr[] = { 1, 2, 3, 4, 5 }; // Size of one element of an array cout << 'Size of arr[0]: ' << sizeof(arr[0]) << endl; // Size of array 'arr' cout << 'Size of arr: ' << sizeof(arr) << endl; // Length of an array int n = sizeof(arr) / sizeof(arr[0]); cout << 'Length of an array: ' << n << endl; return 0; }> 산출
Size of arr[0]: 4 Size of arr: 20 Length of an array: 5>
C++에서 배열과 포인터의 관계
C++에서 배열과 포인터는 서로 밀접하게 관련되어 있습니다. 배열 이름은 배열의 첫 번째 요소의 메모리 주소를 저장하는 포인터로 처리됩니다. 앞서 논의한 것처럼 In 배열 요소는 인접한 메모리 위치에 저장되므로 배열 이름을 사용하여 배열의 모든 요소에 액세스할 수 있습니다.
예제 4: 배열과 포인터 사이의 관계 설명
C++ // C++ Program to Illustrate that Array Name is a Pointer // that Points to First Element of the Array #include using namespace std; int main() { // Defining an array int arr[] = { 1, 2, 3, 4 }; // Define a pointer int* ptr = arr; // Printing address of the arrary using array name cout << 'Memory address of arr: ' << &arr << endl; // Printing address of the array using ptr cout << 'Memory address of arr: ' << ptr << endl; return 0; }> 산출
Memory address of arr: 0x7fff2f2cabb0 Memory address of arr: 0x7fff2f2cabb0>
설명:
위의 코드에서는 먼저 배열을 정의합니다. 도착 그런 다음 포인터를 선언하십시오. ptr 그리고 거기에 배열 arr을 할당합니다. arr도 포인터이기 때문에 arr을 ptr에 할당할 수 있습니다. 그 후, 우리는 메모리 주소를 인쇄합니다 도착 참조 연산자 사용( & ) 또한 포인터에 저장된 주소를 인쇄합니다. ptr arr과 ptr을 볼 수 있는데, 둘 다 동일한 메모리 주소를 저장합니다.
예제 5: C++에서 인덱싱 없이 배열 요소 인쇄
우리는 일반적으로 인덱싱을 사용하여 배열 요소에 액세스하고 인쇄합니다. 예를 들어 우리가 사용하는 첫 번째 요소에 액세스하려면 배열_이름[0]. 위에서 배열 이름은 첫 번째 요소의 주소를 저장하는 포인터이고 배열 요소는 연속된 위치에 저장된다는 것을 설명했습니다. 이제 배열 이름만 사용하여 배열 요소에 액세스하겠습니다.
C++ // C++ Program to Print Array Elements without Indexing #include using namespace std; int main() { // Define an array int arr[] = { 11, 22, 33, 44 }; // Print elements of an array cout << 'first element: ' << *arr << endl; cout << 'Second element: ' << *(arr + 1) << endl; cout << 'Third element: ' << *(arr + 2) << endl; cout << 'fourth element: ' << *(arr + 3) << endl; return 0; }> 산출
first element: 11 Second element: 22 Third element: 33 fourth element: 44>
설명
위 코드에서는 먼저 배열을 선언했습니다. 도착 네 가지 요소로. 그런 다음 배열 요소를 인쇄합니다. 어떻게 하는지 논의해 봅시다. 우리는 배열 이름이 배열의 첫 번째 요소의 주소를 저장하는 포인터라는 점을 논의했습니다. 따라서 첫 번째 요소를 인쇄하기 위해 해당 포인터를 역참조했습니다. (*arr) 역참조 연산자 사용 (*) 해당 주소에 저장된 데이터를 인쇄합니다.
배열의 두 번째 요소를 인쇄하려면 먼저 다음을 추가합니다. 1 에게 도착 이는 첫 번째 요소 바로 뒤의 주소에 대한 포인터를 가져오는 (arr + size_of_one_element *1의 주소)와 동일하며 그 이후에는 해당 포인터를 역참조하여 두 번째 요소를 인쇄합니다. 마찬가지로 인덱싱을 사용하지 않고 배열의 나머지 요소를 인쇄합니다.
C++에서 함수에 배열 전달
배열을 효율적으로 사용하려면 배열을 함수에 전달하는 방법을 알아야 합니다. 함수에 변수를 전달하는 것과 마찬가지로 배열을 함수에 인수로 전달할 수 있지만 이 개념을 사용하면 배열 이름이 포인터로 처리된다는 것을 알고 있습니다. 배열을 함수에 인수로 전달한 다음 다음을 사용하여 해당 배열의 모든 요소에 액세스할 수 있습니다. 바늘.
그래서 궁극적으로, 배열은 항상 함수에 대한 포인터로 전달됩니다. 주로 사용되는 함수에 배열을 전달하는 3가지 방법을 살펴보겠습니다.
1. 배열을 포인터로 전달하기
이 방법에서는 단순히 함수 호출에 배열 이름을 전달합니다. 이는 배열의 첫 번째 요소에 주소를 전달한다는 의미입니다. 이 방법에서는 함수 내의 배열 요소를 수정할 수 있습니다.
통사론
return_type function_name ( data_type *array_name ) { // set of statements }>2. 크기가 지정되지 않은 배열로 배열 전달
이 메서드에서 함수는 크기가 없는 간단한 배열 선언을 인수로 사용하여 배열을 받아들입니다.
통사론
return_type function_name ( data_type array_name[] ) { // set of statements }>3. 배열을 크기가 지정된 배열로 전달
이 메서드에서 함수는 크기를 인수로 사용하여 간단한 배열 선언을 사용하여 배열을 받아들입니다. 우리는 배열의 크기를 나타내기 위해 배열의 크기를 조정함으로써 이 방법을 사용합니다.
통사론
return_type function_name(data_type array_name[size_of_array]){ // set of statements }> 메모: 어떤 방법을 사용하든 배열은 전달된 함수에서 포인터로 처리됩니다. 배열이 포인터로 전달되면 크기에 대한 정보가 손실되어 다음과 같은 현상이 발생합니다. 배열 붕괴.
예: 배열을 함수에 전달하는 다양한 방법 설명
C++ #include using namespace std; // passing array as a sized array argument void printArraySized(int arr[3], int n) { cout << 'Array as Sized Array Argument: '; for (int i = 0; i < n; i++) { cout << arr[i] << ' '; } cout << endl; } // passing array as an unsized array argument void printArrayUnsized(int arr[], int n) { cout << 'Array as Unsized Array Argument: '; for (int i = 0; i < n; i++) { cout << *(arr + i) << ' '; } cout << endl; } // Passing array as a pointer argument void printArrayPointer(int* ptr, int n) { // Print array elements using pointer ptr // that store the address of array passed cout << 'Array as Pointer Argument: '; for (int i = 0; i < n; i++) { cout << ptr[i] << ' '; } } // driver code int main() { int arr[] = { 10, 20, 30 }; // Call function printArray and pass // array and its size to it. printArraySized(arr, 3); printArrayUnsized(arr, 3); printArrayPointer(arr, 3); return 0; }> 산출
Array as Sized Array Argument: 10 20 30 Array as Unsized Array Argument: 10 20 30 Array as Pointer Argument: 10 20 30>
C++의 다차원 배열
둘 이상의 차원으로 선언된 배열을 다차원 배열이라고 합니다. 가장 널리 사용되는 다차원 배열은 2차원 배열과 3차원 배열입니다. 이러한 배열은 일반적으로 행과 열의 형태로 표시됩니다.
다차원 배열 선언
Data_Type Array_Name[Size1][Size2]...[SizeN];>
어디,
- 데이터 형식: 배열에 저장될 데이터 유형입니다.
- 배열_이름: 배열의 이름입니다.
- 크기1, 크기2,…, 크기N: 각 차원의 크기입니다.
C++의 2차원 배열
C++에서 2차원 배열은 행과 열로 배열된 요소의 그룹입니다. 각 요소는 두 개의 인덱스(행용 인덱스와 열용 인덱스)를 사용하여 액세스되므로 테이블이나 그리드로 쉽게 시각화할 수 있습니다.
2D 배열의 구문
data_Type array_name[n][m];>
어디,
- N: 행 수.
- 중: 열 수.

예: 2차원 배열을 설명하는 C++ 프로그램
C++ // c++ program to illustrate the two dimensional array #include using namespace std; int main() { // Declaring 2D array int arr[4][4]; // Initialize 2D array using loop for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { arr[i][j] = i + j; } } // Printing the element of 2D array for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { cout << arr[i][j] << ' '; } cout << endl; } return 0; }> 산출
0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6>
설명
위 코드에서는 4개의 행과 4개의 열이 있는 2D 배열을 선언한 후 루프가 반복될 때마다 (i+j) 값으로 배열을 초기화했습니다. 그런 다음 중첩 루프를 사용하여 2D 배열을 인쇄하고 있으며 아래 출력에서 4개의 행과 4개의 열이 있음을 볼 수 있습니다.
C++의 3차원 배열
3D 배열은 3차원을 사용합니다. 다양한 2차원 배열이 겹겹이 쌓인 집합을 사용하여 표현할 수 있습니다. 세 가지 인덱스(행 인덱스, 열 인덱스, 깊이 인덱스)는 3D 배열의 각 요소를 고유하게 식별하는 데 사용됩니다.
C++에서 3차원 배열 선언
C++에서 3D 배열을 선언하려면 2D 차원과 함께 세 번째 차원을 지정해야 합니다.
Data_Type Array_Name[D][R][C];>
어디,
- 데이터 형식: 각 요소에 저장될 데이터 유형입니다.
- 배열_이름: 배열 이름
- 디: 2D 배열의 수 또는 배열의 깊이.
- 아르 자형: 각 2D 배열의 행 수입니다.
- 씨: 각 2D 배열의 열 수입니다.
예
int array[3][3][3];>

예: 3차원 배열을 설명하는 C++ 프로그램
C++ // C++ program to illustrate the 3d array #include using namespace std; int main() { // declaring 3d array int arr[3][3][3]; // initializing the array for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { arr[i][j][k] = i + j + k; } } } // printing the array for (int i = 0; i < 3; i++) { cout << i << 'st layer:' << endl; for (int j = 0; j < 3; j++) { for (int k = 0; k < 3; k++) { cout << arr[i][j][k] << ' '; } cout << endl; } cout << endl; } return 0; }> 산출
0st layer: 0 1 2 1 2 3 2 3 4 1st layer: 1 2 3 2 3 4 3 4 5 2st layer: 2 3 4 3 4 5 4 5 6>
설명
위 코드에서는 3D 배열을 선언한 다음 세 개의 중첩 for 루프를 사용하여 초기화했습니다. 그 후 출력에 표시된 대로 세 개의 중첩 for 루프를 사용하여 3D 배열의 모든 레이어를 다시 인쇄했습니다.
관련 기사
- C++의 다차원 배열
- 어레이의 속성
- 배열 붕괴
