C++프로그래밍

[C] 2,3 차원 배열 과 포인터

성엽이 2014. 3. 19. 10:54

회사에서 3차원 배열을 쓰는데 인자로 넘겨서 가져왔는데 안되가지구,  급 테스트


얘는 맨날 헷갈리네


 #include <stdio.h>


int main()
{

#if 1
  int ex[2][2][3= { {{1,2,3},{4,5,6}},
            {{7,8,9},{10,11,12}} };
  
  printf("%d\n", ex[0][0][0]);
  printf("%d\n", ex[1][0][0]);

  putchar('\n');

  printf("%d\n",(*ex)[0][0]);
  printf("%d\n",(*ex)[1][0]);
  printf("%d\n",(*ex)[2][0]);
  printf("%d\n",(*ex)[3][0]);

  putchar('\n');

  printf("%d\n",(*(ex+1))[0][0]);
  printf("%d\n",(*(ex+1))[1][0]);

  putchar('\n');

  printf("%d\n",(***(ex+0))+0);
  printf("%d\n",(***(ex+1))+0);  

#else
  int ex[2][3= {{1,2,3},{4,5,6}};

  printf("%d\n", ex[0][0]);
  printf("%d\n", ex[1][0]);

  putchar('\n');

  printf("%d\n",(*ex)[0]);
  printf("%d\n",(*ex)[1]);
  printf("%d\n",(*ex)[2]);

  putchar('\n');

  printf("%d\n",(*(ex+1))[0]);
  printf("%d\n",(*(ex+1))[1]);
  printf("%d\n",(*(ex+1))[2]);

  putchar('\n');

  printf("%d\n",(**(ex+0))+0);
  printf("%d\n",(**(ex+1))+0);
#endif


  getchar();
  return 0;
}