int, double과 같은 기본 자료형 에서 선언할수 있는 배열의 차원수는 제한이 없습니다.
4차원 뿐만 아니라 100차 1000차도 가능하죠.
하지만 실질적으로 1,2차원 배열이 자주 쓰이고 3차원 배열은 가끔 쓰이는 정도입니다.
4차원 이상은 거의 쓰이지 않는다고 보시면 됩니다.
그리고 이것은 기본자료형뿐만 아니라 포인터나 구조체, 클래스, 열거형과 같은 사용자 정의 자료형에서도 동일하게 적용됩니다.
한마디로 모든 자료형의 배열은 선언할수 있는 차원에 제한이 없다고 보시면 됩니다.
예를 들기위해 구조체 2차원 배열을 이용해 구구단을 짜 봤습니다.
(구구단을 짜기 위해 구조체 배열을 사용할 필요까지는 없지만..)
#include <stdio.h>
// 구구단 구조체 선언
// 멤버변수는 left * right = result 의 값을 의미한다
struct Gugudan
{
int left;
int right;
int result;
};
int main(int argc, char *argv[])
{
// 구조체 2차원 배열 선언
struct Gugudan gugudan[10][10];
int i, j;
// 곱셈을 계산해서 멤버변수에 대입
for(i = 0; i < 10; i++)
{
for(j = 0; j < 10; j++)
{
gugudan[i][j].left = i;
gugudan[i][j].right = j;
gugudan[i][j].result = i * j;
}
}
// 출력
for(i = 0; i < 10; i++)
{
for(j = 0; j < 10; j++)
{
printf("%d*%d=%2d ", gugudan[i][j].left, gugudan[i][j].right, gugudan[i][j].result);
}
printf("\n");
}
return 0;
}
|