code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>

int main(void)
{
int i, j;
int arrA[2][4] = {{1,2,3,4}, {5,6,7,8}};
int arrB[4][2]={0, };


int row = sizeof(arrA[0]) / sizeof(int);

int col = sizeof(arrA) / sizeof(arrA[0]);

for(i=0; i<col; i++)
{
for(j=0; j<row; j++)
{
arrB[j][i] = arrA[i][j];
}
printf("%d", arrB[i][j]);
printf("\n");
}
}

Analysis

arrA - 1 2 3 4 5 6 7 8
arrB - 0


arrB[0][0] = 1(arrA[0][0]);
arrB[1][0] = 2(arrA[0][1]);
arrB[2][0] = 3(arrA[0][2]);
arrB[3][0] = 4(arrA[0][3]);

이중 for문을 다 돌았을 때 i = 0, j = 4

print arrB[0][4] - 3

arrB[0][0] - 1
arrB[0][1] - ?
arrB[1][0] - 2
arrB[1][1] - ?
arrB[2][0] - 3


다시 첫번째 for문으로 돌아가서

i++ 한 결과 i = 1이 되고 j = 0으로 다시 루프

arrB[0][1] = 5(arrA[1][0])
arrB[1][1] = 6(arrA[1][1])
arrB[2][1] = 7(arrA[1][2])
arrB[3][1] = 8(arrA[1][3])

이중 for문을 다 돌았을 때 i = 1, j = 4

print arrB[1][4] - 4

arrB[1][0] - 2
arrB[1][1] - 6
arrB[2][0] - 3
arrB[2][1] - 7
arrB[3][0] - 4