배열
자료형 배열이름[크기] = {요소}; //배열의 초기화 (배열의 크기보다 요소가 적은 경우, 빈공간 0값이 들어감)
int numArr[5] = {10, 20, 30, 40, 50}; printf("%d\n", numArr[0]); // 배열 numArr[0]번째 주소의 요소값 출력배열에서의 반복문
반복문에서 나오는 각각의 요소들을 이용해서 배열 출력 가능
for(cnt = 0; cnt < 5; cnt++) //반복문 요소값 생성 socre [cnt] = 0; //배열의 크기를 반복문 cnt의 순서로 불러옴배열의 문자열
문자 및 문자열은 ASCII의 1바이트 크기로 저장
문자 - ''(작은따옴표)로 선언char str[5] = 'H', 'e', 'l', 'l', 'o';문자열 - ""(큰타옴표)로 선언
char str[6] = "hello\0" //문자열에서는 항상 마지막에 NULL값을 지정해줘야 한다. 따라서 배열의 크기도 문자의 개수보다 1이상 크게 지정해야함2차원 배열
배열의 크기를 행과 열로 나타낸 2차원 구조.
int a [행][열];
초기화 값을 행별로 구분하는 방법의 예로는int a[3][4] = { {1, 2, 3, 4}, //1행의 초기값 {5, 6, 7, 8}, //2행의 초기값 {9, 10, 11, 12} //3행의 초기값 };이렇게 표현할 수 있고, 프린트문으로 구조를 보면
printf("%d %d %d %d \n", a[0][0], a[0][1], a[0][2], a[0][3]); printf("%d %d %d %d \n", a[1][0], a[1][1], a[1][2], a[1][3]); printf("%d %d %d %d \n", a[2][0], a[2][1], a[2][2], a[2][3]); /* --출력-- 1 2 3 4 5 6 7 8 9 10 11 12 */행과 열의 순서로 요소를 출력할수 있다. (2차원 배열의 구조에서도 for문을 응용해서 요소값을 출력할수 있다.)
int col = sizeof(a[0]) / sizeof(int); int row = sizeof(a) / sizeof(a[0]); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { printf("%d ", a[i][j]); } printf("\n"); }주의점: 2차원 배열에서의 크기는 생략이 가능하지만 열의 크기는 불가능.
int a[3][] = {10, 20, 30, 40, 50, 60, 70, 80, 90}; //불가능 int a[][3] = {10, 20, 30, 40, 50, 60, 70, 80, 90}; //가능3차원 배열
2차원 배열에서 면이 추가된 3차원 구조.
int a [면][행][열];int a [2][3][4] = {{ {1, 2, 3, 4}, {5, 6, 7, 8}, //0면의 행과 열 {9, 10, 11, 12} }, { {1, 2, 3, 4}, {5, 6, 7, 8}, //1면의 행과 열 {9, 10, 11, 12} };2차원의 배열이 겹겹이 쌓여있는 구조로 생각하면 이해하기 쉽다.