C언어 array(배열) 알아보기
#C #array
이제 본격적으로 array(배열)을 다룰 차례다. 2차원 배열은 행렬로 표현된다. C언어에서 배열은 array[m][n]
와 같이 표현할 수 있다. 여기에서 array
는 배열의 이름이고, 뒤의 [m][n]
는 m*n
매트릭스라는 뜻이다. 괄호가 하나면 벡터로 표현할 수 있다. 그래서 다음의 코드를 짜보았다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int main()
{
int i=3, j=2;
int M[i][j];
int k;
for (k=0; k<i; k++) {
M[k][0] = k+1;
M[k][1] = 10/(k+1);
}
printf("%d \t", M[0][0]);
printf("%d \n", M[0][1]);
printf("%d \t", M[1][0]);
printf("%d \n", M[1][1]);
printf("%d \t", M[2][0]);
printf("%d \n", M[2][1]);
return 0;
}
우선 i*j
행렬을 만들었는데, 그 행렬을 M
으로 정의했다. 그리고 for
문을 통해 매트릭스의 1열에는 각 열의 번호를 지정했고, 2열에는 10
을 j
로 나눴을 때의 몫을 썼다. 이렇게 하고 프린트하면
1
2
3
1 10
2 5
3 3
이렇게 배열이 프린트가 될 것이다. C언어를 공부하면서 한 가지 아쉬웠던 것은, MATLAB 등의 언어는 매트릭스 자체를 프린트 하는 것도 가능한데, 내가 지금까지 검색해본 바로는 C언어는 일일이 프린트를 해줘야한다는 점이다. (이 때 for
를 이중으로 해서 사용). 물론 C언어가 많이 빨라서 이중 루프를 써도 속도에 크게 지장은 없을테지만, 불필요하게 코드를 많이 짜야하는 점이 아쉬웠다. 그래서 통계 등의 연산이 필요한 사람에게 C는 좀 과한 언어이면서 아쉬운 언어라는 건가 보다. Julia를 배울 이유가 하나 더 생겼다.
This post is licensed under CC BY 4.0 by the author.