C 언어
배열은 동일한 데이터 유형의 요소를 순차적으로 저장하는 데이터 구조입니다. C++ 배열에는 고정 크기가 있습니다.
배열을 유사한 데이터 유형의 변수 모음으로 볼 수 있습니다. 각 변수를 선언하고 개별적으로 값을 할당하는 대신 하나의 변수(배열)를 선언하고 다양한 변수의 값을 추가할 수 있습니다. 배열에 추가된 각 값은 인덱스로 식별됩니다.
이 C++ 자습서에서는 다음을 배우게 됩니다.
배열은 모든 프로그래밍 언어에서 매우 중요합니다. 변수 또는 유사한 데이터 유형의 데이터 모음을 별도로 저장하는 대신 함께 저장하는 더 편리한 방법을 제공합니다. 배열의 각 값은 개별적으로 액세스됩니다.
C++의 배열 선언에는 배열에 저장할 요소의 수와 유형을 명시하는 것이 포함됩니다. 구문:
type array-Name [ array-Size ];
예를 들어 age라는 배열을 만들고 다음과 같이 5명의 학생 나이를 저장할 수 있습니다.
int age[5];
배열 age는 다른 학생의 나이를 나타내는 5개의 정수를 저장합니다.
배열 초기화는 배열에 요소를 할당/저장하는 프로세스입니다. 초기화는 단일 문으로 또는 하나씩 수행할 수 있습니다. 배열의 첫 번째 요소는 인덱스 0에 저장되고 마지막 요소는 인덱스 n-1에 저장됩니다. 여기서 n은 배열의 총 요소 수입니다.
age 배열의 경우 첫 번째 요소는 인덱스 0에 저장되고 마지막 요소는 인덱스 4에 저장됩니다.
배열 초기화를 수행하는 방법을 보여주기 위해 age 배열을 사용하겠습니다.
int age[5] = {19, 18, 21, 20, 17};
{ } 내의 총 요소 수는 [ ] 내에 명시된 값을 초과할 수 없습니다. 요소 19는 인덱스 0에, 18은 인덱스 1, 21은 인덱스 2, 20은 인덱스 3, 17은 인덱스 4에 있습니다. 배열에 저장할 요소의 수를 [ ] 안에 지정하지 않으면 배열이 { } 내에 추가된 요소를 담을 수 있을 만큼만 커집니다. 예:
int age[] = {19, 18, 21, 20, 17};
위의 문장은 이전 배열과 정확히 동일한 배열을 생성합니다. 인덱스를 사용하여 하나의 요소를 배열에 할당할 수도 있습니다. 예:
age[3] = 20;
위의 명령문은 age라는 배열의 인덱스 3에 값 20을 저장합니다. 이것은 20이 4 번째 가 됨을 의미합니다. 배열의 요소.
C++ 배열에는 두 가지 유형이 있습니다.
데이터 항목이 한 차원에서만 선형으로 배열된 배열입니다. 일반적으로 1차원 배열이라고 합니다. 구문:
datatype array-name[size];
예:
#include <iostream> using namespace std; int main() { int age[5] = { 19, 18, 21, 20, 17 }; for (int x = 0; x < 5; x++) { cout <<age[x]<<"\n"; } }
출력:
다음은 코드의 스크린샷입니다.
코드 설명:
이것은 데이터 항목이 배열의 배열을 형성하도록 배열된 배열입니다. 다차원 배열은 여러 차원을 가질 수 있지만 2차원 및 3차원 배열이 일반적입니다. 구문:
datatype array-name[d1][d2][d3]...[dn];
array-name은 n 차원을 가질 배열의 이름입니다. 예:
2D 배열은 1차원 배열을 사용하여 목록에 데이터를 저장합니다. 행과 열이 있는 행렬입니다. 2D 배열을 선언하려면 다음 구문을 사용하십시오.
type array-Name [ x ][ y ];
유형은 유효한 C++ 데이터 유형이어야 합니다. 2D 배열을 표로 보십시오. 여기서 x는 행 수를 나타내고 y는 열 수를 나타냅니다. 이것은 a[x][y] 형식을 사용하여 2D 배열의 각 요소를 식별한다는 것을 의미합니다. 여기서 x는 요소가 속한 행의 수이고 y는 열의 수입니다.
다음은 2D 배열을 초기화하는 방법의 예입니다.
int a[2][3] = { {0, 2, 1} , /* row at index 0 */ {4, 3, 7} , /* row at index 1 */ };
위의 예에서 우리는 2×3 행렬로 볼 수 있는 2D 배열을 가지고 있습니다. 2개의 행과 3개의 열이 있습니다. 요소 0은 행 인덱스 0과 열 인덱스 1의 교차점에 있기 때문에 a[0][1]로 액세스할 수 있습니다. 요소 3은 다음 위치에 있기 때문에 a[1][2]로 액세스할 수 있습니다. 인덱싱된 행 1과 인덱싱된 열 2의 교집합입니다.
요소의 다른 행을 구분하기 위해 단순히 중괄호를 추가했다는 점에 유의하십시오. 초기화는 다음과 같이 수행할 수도 있습니다.
int a[2][3] = {0, 2, 1, 4, 3, 7}; };
다음 C++ 예제는 2D 배열을 초기화하고 순회하는 방법을 보여줍니다.
#include <iostream> using namespace std; int main() { // a 2x3 array int a[3][2] = { {0, 2}, {1, 4}, {3, 7} }; // traverse array elements for (int i=0; i<3; i++) for (int j=0; j<2; j++) { cout << "a[" <<i<< "][" <<j<< "]: "; cout << a[i][j] << endl; } return 0; }
출력:
다음은 위 코드의 스크린샷입니다.
코드 설명:
3D 배열은 배열의 배열입니다. 3D 배열의 각 요소는 3개의 인덱스 집합으로 식별됩니다. 3D 배열의 요소에 액세스하려면 세 개의 for 루프를 사용합니다. 예:
#include<iostream> using namespace std; void main() { int a[2][3][2] = {{{4, 8},{2, 4},{1, 6}}, {{3, 6},{5, 4},{9, 3}}}; cout << "a[0][1][0] = " << a[0][1][0] << "\n"; cout << "a[0][1][1] = " << a[0][1][1] << "\n"; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명:
포인터는 주소를 저장하는 변수입니다. 포인터를 사용하여 변수의 주소를 저장하는 것 외에 배열 셀의 주소를 저장하는 데 사용할 수 있습니다. 배열의 이름은 항상 첫 번째 요소를 가리킵니다. 아래에 제공된 선언을 고려하십시오.
int age[5];
age는 age라는 배열의 첫 번째 요소 주소인 $age[0]에 대한 포인터입니다. 다음 예를 고려하십시오.
#include <iostream> using namespace std; int main() { int *john; int age[5] = { 19, 18, 21, 20, 17 }; john = age; cout << john << "\n"; cout << *john; }
출력:
위 출력의 첫 번째 값은 컴퓨터 메모리에 있는 배열의 첫 번째 요소에 할당된 주소에 따라 다른 값을 반환할 수 있습니다.
다음은 코드의 스크린샷입니다.
코드 설명:
배열 이름을 상수 포인터로 사용할 수 있으며 그 반대의 경우도 마찬가지입니다. 이것은 *(age + 3)를 사용하여 배열 age의 인덱스 3에 저장된 값에 액세스할 수 있음을 의미합니다. 예:
#include <iostream> using namespace std; int main() { // an array of 5 elements. int age[5] = { 19, 18, 21, 20, 17 }; int *p; p = age; // output array values cout << "Using pointer: " << endl; for (int x=0; x<5; x++) { cout << "*(p + " << x << ") : "; cout << *(p + x) << endl; } cout << "Using age as address: " << endl; for (int x = 0; x < 5; x++) { cout << "*(age + " << x << ") : "; cout << *(age + x) << endl; } return 0; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명:
배열의 요소는 각각의 인덱스를 사용하여 액세스됩니다. 액세스할 요소의 인덱스는 배열 이름 바로 뒤에 대괄호 [ ] 안에 추가됩니다. 예:
int john = age[2];
위의 예에서 우리는 단순히 john의 나이가 age라는 배열의 인덱스 2에 저장되어 있음을 나타냅니다. 이것은 john의 나이가 3 rd 임을 의미합니다. 배열 연령의 값입니다. 다음은 이 값에 액세스하고 출력하는 방법을 보여주는 완전한 C++ 예제입니다.
#include<iostream> using namespace std; int main() { int age[5] = { 19, 18, 21, 20, 17 }; int john = age[2]; cout << "The age of John is:"<<john; }
출력:
다음은 코드의 스크린샷입니다.
코드 설명:
다음은 C++에서 배열을 사용할 때의 장단점입니다.
C 언어
동일한 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장할 수 있는 일종의 데이터 구조를 배열합니다. 배열은 데이터 모음을 저장하는 데 사용되지만 종종 배열을 같은 유형의 변수 모음으로 생각하는 것이 더 유용합니다. number0, number1, ..., number99와 같은 개별 변수를 선언하는 대신 숫자와 같은 하나의 배열 변수를 선언하고 숫자[0], 숫자[1], ..., 숫자[99]를 사용하여 표현합니다. 개별 변수. 배열의 특정 요소는 인덱스에 의해 액세스됩니다. 모든 배열은 연속적인 메모리 위치로 구성됩니다. 가장
배열은 동일한 유형의 요소에 대한 고정 크기 순차 컬렉션을 저장합니다. 배열은 데이터 모음을 저장하는 데 사용되지만 배열을 인접한 메모리 위치에 저장된 동일한 유형의 변수 모음으로 생각하는 것이 더 유용합니다. number0, number1, ..., number99와 같은 개별 변수를 선언하는 대신 숫자와 같은 하나의 배열 변수를 선언하고 숫자[0], 숫자[1], ..., 숫자[99]를 사용하여 표현합니다. 개별 변수. 배열의 특정 요소는 인덱스에 의해 액세스됩니다. 모든 배열은 연속적인 메모리 위치로 구성됩니다. 가장 낮은