Ex20-2차원 배열의 값 출력

CODEDRAGON Development/C, C++

반응형

   

2차원 배열의 값 출력

   

*연산자

2차원 배열 요소에 저장된 값을 참조하는 연산자

*연산자는 주소에 저장된 값 참조

   

*메모리공간의 주소

*&array[0][0]

*array[0]+0

**(array+0)+0

   

   

소스코드

   

  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4.     int array[2][2] = {10,20,30,40};
  5.  
  6.     printf("%d %d \n", *&array[0][0],*&array[0][1]);            // 10, 20 출력
  7.     printf("%d %d \n", *&array[1][0],*&array[1][1]);            // 30, 40 출력
  8.  
  9.     //array[0] 0행을 대표하는 주소이고 앞에 *붙어있우므로 주소의 값인 10 됩니다.
  10.     printf("--------\n");
  11.     printf("%d %d \n", *array[0]+0, *array[0]+1 );                // 10, 11 출력
  12.     //array[1] 1행을 대표하는 주소이고 앞에 *붙어있우므로 주소의 값인 30 됩니다.
  13.     printf("%d %d \n", *array[1]+0, *array[1]+1 );                // 30, 31 출력
  14.  
  15.     printf("--------\n");
  16.     //2차원 배열에서 array[i] == *(array+i) 주소
  17.     printf("%d %d \n", **(array+0)+0, **(array+0)+1 );        // 10, 11 출력
  18.     printf("%d %d \n", **(array+1)+0, **(array+1)+1 );        // 30, 31 출력
  19.  
  20.     return 0;
  21. }


   

   

출력결과

전체 배열의 값이 출력이 되지 않습니다.(연산자 우선순위로 인해 전체 배열 요소를 지칭하지 못합니다)

배열요소값이 아닌 이전 배열값에 더하기 연산이 수행된 값이 보여집니다.

=>Ex21.c에서 전체 2차원 배열의 값 출력