뭐 행과 열에 별로 의미가 있는건 아니구요 그건 개념적 의미다보니 뒤집어 생각해도 별 상관없겠습니다.
중요한 건 '실제 메모리 순서대로 쓰여지는 쪽'이 어느쪽이냐 라는 겁니다.
(C에서는 맨 뒷쪽에 붙은게 실제 메모리 순서상으로 붙은 부분입니다.)
사실 저는 2차원 이상의 다차원 배열을 직접적으로 선언해서는 잘 안씁니다. 알면서도 막상 쓸려면 헷갈리는 그런거 있잖습니까 -_-;
struct 선언을 하든가 해서 웬만하면 외견상 1차원 배열로 보이게 선언하고, 그렇게 씁니다.
2006.09.10 10:34:55 (*.187.161.103)
이경용
아 그런 거군요, 감사합니다^^
2006.09.10 12:56:02 (*.117.228.56)
박재범
우리가 배열을 그려서 볼때는 행렬처럼 그리지만 컴퓨터는 배열이라는걸 알고만있을뿐 실제로는 다 1줄로 이어붙여서 기억합니다.
2006.09.10 12:56:46 (*.117.228.56)
박재범
배열은 괜찮았습니다만. 포인터 배울때 정말 정신안차리면 모릅니다 복잡해서 @_@
2006.09.10 13:53:42 (*.109.109.163)
kallru
흠...배열 개념을 이해 할때 행렬로 이해하는건 개인적으로는 비추..
int nArray[5][2][4][6][7][3]; 요런식에 배열은 어떻게 이해 할지.. 헌데 이 배열이라는 녀석은 굉장히 간단하게 이해 할 수 있어요. 결국 앞에꺼 만큼 뒤에께 존재하는 거기 때문에
한개씩 풀어보면 쉽게 이해할수있죠. 물론 저런식은 실제 쓰이지는 않지만 ㅋㅋ; 여지껏 코딩해오면서 4차원 배열까지 딱 한번 써봤군요.
오른쪽에서부터 풀어보면 3개짜리 배열이 7개 있고, 이 배열이 다시 6개가 있고, 이것이 다시 4개....이런식이죠. 어렵나 -_-a;; 왠지 말로 쓰니 복잡하군요.^^;
2006.09.11 01:10:31 (*.212.4.84)
1ststory
2차원 배열은 보기만 2차원 일 뿐 실제로는 일렬로 이루어져 있습니다
[3][2] 라고 하면 2개의 배열이 3개가 연속되어 이루어져 있다고 생각 하면 됩니다. (뒤에서 앞으로의 순입니다.)
만약 행렬이라고 가정을 하고 Aij 라는 행렬이 있다고 쳤을때
이것을 배열로 나타내면 A[j][i]가 되는 것이죠. 이 차이를 잘 이해 하셔야 합니다. A[i]가 j만큼 있다는 의미거든요.
3차원 행렬인 Bxyz를 배열로 나타내면 B[z][y][x]가 되는 겁니다.
2006.09.11 01:12:24 (*.212.4.84)
1ststory
2차원 배열에 메모리의 순차적 접근을 하고 싶을때
for(int iy=0; iy<3; ++iy)
for(int ix=0; ix<2; ++ix)
A[iy][ix]
이렇게 해야 메모리를 처음부터 순차적으로 접근을 하는 것이죠.
2006.09.11 03:08:49 (*.155.232.198)
Ruins
행열의 개념이라기 보다도 a[x][y]의 경우 x*y만큼의 배열이 존재한다고 보시면 됩니다.
비트맵영상처리 관련하시다 보면 개념을 확고히 익힐수 있죠...ㅡㅡ;
중요한 건 '실제 메모리 순서대로 쓰여지는 쪽'이 어느쪽이냐 라는 겁니다.
(C에서는 맨 뒷쪽에 붙은게 실제 메모리 순서상으로 붙은 부분입니다.)
사실 저는 2차원 이상의 다차원 배열을 직접적으로 선언해서는 잘 안씁니다. 알면서도 막상 쓸려면 헷갈리는 그런거 있잖습니까 -_-;
struct 선언을 하든가 해서 웬만하면 외견상 1차원 배열로 보이게 선언하고, 그렇게 씁니다.