배열질문
, 이 재원님이 작성sizeof(배열) / sizeof(배열[0]) //2차원배열의 세로 크기를 구하기
sizeof(배열[0])/ sizeof(자료형) //2차원 배열의 가로 크기 구하기
sizeof(배열) / sizeof(배열[0]) //3차원 배열의 높이 구하기
sizeof(배열[0]) / sizeof(배열[0][0]) //3차원 배열의 세로크기 구하기
sizeof(배열[0][0]) /sizeof(자료형)//3차원 배열의 가로 크기 구하기
위에서 2차원 배열에서는 가로한줄이 배열[0]인데 3차원배열에서는 가로한줄이 배열[0][0] 인가요 그리고 왜 3차원배열의 한면이 배열[0]인지 궁금합니다 배열[0] 배열의 가로한줄을 나타내는거아닌가요?
Re: 배열질문
, 도장_ 관리자님이 작성그림 37-4를 보세요.
2차원 배열은 평면이고, 3차원 배열은 이 평면을 쌓아 놓은 것입니다.
따라서 차원의 개수만 늘어난 것이지 각각의 크기를 찾는 과정은 동일합니다.
이전 답변을 하나 참고하세요.
---------------
세로 변수를 row, 가로 변수를 col로 선언하는 게 맞나요? 네, 맞습니다.
다음 답변을 참고하세요.
사람의 직관이 아니라 메모리가 할당되는 방식을 이해하세요.
---------------
3차원 배열이 arr[A][B][C]처럼 있을 때 arr[A]는 3차원으로 쌓인 평면의 층입니다.
2차원 배열이 10개 쌓여 있다면 A의 범위는 0~9까지 10개가 되겠지요.
arr[5]는 0층부터 시작해서 5층에 쌓여 있는 전체 평면을 가리키는 게 됩니다.
전체 배열의 높이는 어떻게 구할까요? 전체 배열 크기를 배열의 평면, 즉 한 층의 크기로 나누면 됩니다. 관례상 arr[0]으로 쓰는 것이지 arr[5]로 써도 층의 크기는 같으니까 결과는 같습니다.
sizeof(배열) / sizeof(배열[0]) //3차원 배열의 높이 구하기
arr[A][B]는 A라는 평면에서 B라는 세로 높이를 가리키는 게 되고,
arr[A][B][C]는 A라는 평면에서 B라는 세로 높에서 C라는 가로에 있는 위치를 가리키게 됩니다.
마지막 가로열에 있는 것은 각각의 자료형이므로 sizeof(자료형)으로 나눠주면 됩니다.