c++ - C语言多维数组问题,本人小白刚学c
PHP中文网
PHP中文网 2017-04-17 15:28:07
0
2
681

请问各位大神,二维数组和三维数组的本质是神马?为啥要取多次*呢?那多维数组呢?对一维、二维、三维等数组名取地址取得是神马呢?请说得仔细点,本人小白,谢谢各位大神了

PHP中文网
PHP中文网

认证0级讲师

모든 응답(2)
伊谢尔伦

C의 다차원 배열은 배열의 배열이어야 하므로 3차원 배열은 2차원 배열을 요소로 하는 배열이고, 2차원 배열은 1차원 배열을 요소로 하는 배열입니다.

으아악
  1. 먼저 1차원 배열의 배열 이름이 1차원 배열의 시작 주소라는 점을 분명히 해야 합니다.

  2. 다차원 배열에서 얻은 요소 중 최하위 차원을 제외한 요소는 배열의 시작 주소인 "배열 이름"으로 간주할 수 있습니다. 예를 들어, A[2]가 A4에서 가져온 경우 A[2]는 A4의 두 번째(0부터 계산) 1차원 배열의 시작 주소입니다.

  3. 그러면 4)부터 시작합니다. array[i][j][k]는 값일 뿐이므로 문제가 없습니다.

  4. 3)을 봅시다 array[i][j]는 이 3차원 배열에서 i번째 2차원 배열을 선택한 다음, 이 2차원 배열에서 j번째 1차원 배열을 선택한다는 의미입니다. 배열이므로 array[i][j]이 이 1차원 배열의 시작 주소(1차원 배열의 배열 이름으로 이해될 수 있음)이므로 int (*c)를 사용합니다.

  5. 스킵 2) 1)을 볼까요, array은 3차원 배열의 배열 이름이고, 요소가 2차원이므로 3차원 배열의 시작 주소이기도 합니다. 배열이므로 int (*a)[4][5]

  6. 을 사용합니다.

그러면 많은 * 질문이 있습니다.
예를 들어 A[m][n](i,j)
에 액세스하려면 *(*(A i) j)을 사용하세요. 왜 A는 2차원 배열 배열의 이름인가요? 이므로 2차원이다. 배열의 시작 주소 A i는 A의 i번째 요소의 주소입니다. 값을 얻으려면 ×를 가져오세요. 값은 이 1차원 배열의 시작 주소인 1차원 배열입니다. (아 i) j는 이 1차원 배열의 j번째 요소의 주소를 가져온 다음 을 사용하여 이 값을 가져옵니다.

Peter_Zhu

본질적으로는 모두 배열입니다. 1차원 공간이 직선인 것처럼 2차원 공간도 1차원을 확장하여 얻은 것입니다. 3차원 공간.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿