위의 프로그램의 배열 요소는 순차적으로 행 다음 메모리 행에 저장됩니다. 배열이 행 주요 순서로 저장되어 있다고 가정합니다. 아시다시피 배열 이름은 상수 포인터처럼 행동하고 배열의 첫 번째 요소를 가리킵니다. 2-D 배열에 대해동일한 경우, 배열 이름 행렬은 상수 포인터역할을 하며 첫 번째 행의 첫 번째 요소를 가리킵니다. 유효한 행렬 범위 내의 배열 요소는 다른 구문을 따라 액세스할 수 있습니다. 선언 하는 동안 두 차원 배열을 초기화 하는 두 가지 방법이 있습니다. 3D 배열 곱셈을 사용하여 다차원 배열을 설명하여 2d 배열에 대한 주제를 확장합니다… 정렬 및 검색 1D 배열에서 선언 및 초기화가 동시에 수행되는 경우 배열의 크기를 지정할 필요가 없습니다. 그러나 2D 배열에서는 이 문제가 작동하지 않습니다. 배열의 최소한 두 번째 차원을 정의해야 합니다. 2차원 배열은 다음과 같은 방식으로 선언하고 정의할 수 있습니다.

이전 세션에서 강연했듯이 배열은 공통 메모리 할당에 동일한 유형의 여러 값을 저장하는 데 사용됩니다. 예를 들어 12개월 만에 제품을 판매하면 어레이를 사용하여 공통 메모리 할당에 저장할 수 있습니다. 위의 예에서 정수 형식의 2D 배열 abc가 있습니다. 개념적으로 다음과 같은 위의 배열을 시각화 할 수 있습니다 : 약간 혼란 스러울 수 있지만 걱정하지 마십시오. 다차원 배열로 작업하는 연습을 할 때 논리를 파악하기 시작합니다. 이봐…….. 코드와 설명은 정말 나를 도왔다.. BT 난 정말 여기에 잘 증명되는 3D 배열의 차이를 이해할 수 없다, 그러나 나는 3D의 두 배열의 빼기를 수행하는 방법을 알고 싶습니다. 예를 들어 a[0]-a1[1].

U는 예를 들어, 나를 도울 수, 다음 선언은 3 차원 정수 배열을 만듭니다 – 다차원 배열은 함수에서 반환 될 수 있습니까? 할 수있는 경우, 나는 예를 필요로, thx be4. 그림 레이블 “2D 배열 개념적 메모리 표현”은 행과 열 의 수를 전환했기 때문에 설명이 잘못되었습니다. IT는 abc[5][4]를 말해야 하며 5개의 행과 4개의 열이 있습니다!!! 배열에 저장된 요소는 위의 예제에서 arr[3]의 출력을 “arrayName[index]”라는 구문따라 액세스됩니다. 이 전략은 배열의 기본 주소를 원하는 요소의 인덱스와 결합하여 원하는 요소의 기본 주소를 계산합니다. 모든 배열 요소는 컴파일 타임에 알려진 고정 된 바이트 수를 취하며 이는 배열 유형에 따라 결정됩니다. 위의 예제 배열은 형식 정수이므로 요소당 4바이트(정수 크기)를 사용합니다. 따라서 0 기반 인덱싱을 사용하는 배열의 n번째 요소의 주소는 배열의 기본 주소에서 (n * element_size) 바이트의 오프셋에 있을 것입니다.