C언어 독학 배열의 길이 없이 초기화하기
C언어 독학 배열의 길이 없이 초기화하기
C언어에서 배열은 1차원과 다차원(2차원)이 있는데요. 이 배열들을 초기화하는 과정은 거의 비슷하다는 걸 지난 글에서 확인해봤습니다. '거의' 같다는 건 다른 점도 있다는 뜻이겠죠?^^ 몇 가지 차이점 중에서 이번 글에서 알아볼 배열의 길이를 알려주지 않고 초기화하는 방법이 조금 차이가 있습니다.
예를 들어 1차원 배열은 다음과 같이 길이를 명시하지 않고 초기화하면...
int x []={1, 2, 3};
▲ int형 배열 x의 길이가 3이라는 걸 컴파일러가 자동으로 찾아줍니다. 하지만 2차원 배열은 조금 다른데요. 지난 글에서 정리했듯이 2차원 배열은 행과 열로 값들이 위치하게 되는데...
int y[][]={1, 2, 3, 4, 5,6};
▲ 이렇게 행, 열의 길이 값 모두를 지정하지 않고 초기화를 한다면 컴파일러는 행이 몇 개이고 열이 몇 개인지 모르겠죠? 이 경우 1*6, 2*3, 3*2.... 등 경우의 수가 여러 개이기 때문에 하나는 가르쳐 줘야 합니다. 그래서 이런 경우에는 두 번째의 열의 개수를 지정해주면 됩니다.
int y[][3]={1, 2, 3, 4, 5, 6};
▲ 열의 수를 3으로 지정했으니 행은 당연히 2가 되겠죠? 이처럼 C언어에서 다차원 배열을 선언함과 동시에 초기화할 때는 열(가로)의 길이값을 꼭 적어줘야 하고 행(세로)의 길이만 생략이 가능합니다. 참고하셔요.^^
이렇게 해서 다차원(2차원) 배열의 초기화 방법 중 선언과 동시에 초기화할 때 길이 값 설정에 대해서 알아봤습니다. 수고하셨어요.