컴퓨터 속에 메모리는 1차원적인 주소공간을 가지고 있다.
하지만 우린 아파트같은 구조도 필요하다.
(한층에 다섯개 집 층이 3개) 15개의 집을 생각해보자.
이렇게 사용할 수 있게하는 것이 다차원배열이다.
int a[2][2]형식으로 생성한다.
2차원,3차원,4차원 배열까지 생성가능하다.
초기화 특이점 = {0}으로 하면 전부 0으로 초기화 된다.
메모리차원에서보면 데이터가 일차원적으로 나열되어 있다.
기억하자 메모리에는 일차원적으로 나열되어있다.
2차원 배열의 예
#include <iostream>
using namespace std;
int main() {
//1층에 5개집이 있는 3층 건물
const int num_rows = 3;
const int num_columns = 5;
for (int i = 0; i < num_rows; i++) {
cout << i << " -------------------------------------------" << endl;
for (int s = 0; s < num_columns; s++) {
cout << "[rows:" << i << ']' << '[' << s << ']' << '\t';
}
cout << endl;
cout << " -------------------------------------------" << endl;
}
//위에 코드를 다차원 배열로 생성하기
int array[num_rows][num_columns] = //초기화하기
{
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15}
};
//형식으로 초기화 할 수도 있다.
array[0][0] = 100;
for (int i = 0; i < num_rows; i++) {
for (int s = 0; s < num_columns; s++) {
//메모리가 4byte씩 증가하는걸 확인할 수 있다.
cout << array[i][s] << " &: " << (int)&array[i][s] << '\t';
}
cout << endl;
}
return 0;
}
3차원 배열의 예
#include <iostream>
using namespace std;
int main()
{
int a[2][3][4] = { 0 };
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
for (int s = 0; s < 4; s++) {
cout << "i : " << i << " j : " << j << " = " << a[i][j][s] << endl;
}
cout << "-----------------------------------------" << endl;
}
cout << "================================================" << endl;
}
return 0;
}
'개발 소발 > 개발 C++(기초)' 카테고리의 다른 글
c++ 널 포인터 Null Pointer (0) | 2019.07.25 |
---|---|
c++ 포인터의 기본적인 활용법 (0) | 2019.07.25 |
c++ 배열 선택정렬,버블정렬 (0) | 2019.07.24 |
c++ 배열 array 배열반복문사용 (0) | 2019.07.24 |
c++ 랜덤숫자생성, cin 잘쓰기 (0) | 2019.07.22 |