포인터와 배열의 관게
날 괴롭힌 난제들 중 하나인데.. 구글링 결과 대충(정말로 대충) 결과를 얻긴 얻었다. int *ptr[2]; int (*ptr)[2]; int *ptr[2]는 직역한 대로 '포인터 변수를 배열로 가진다'이고, int (*ptr)[2]는 'int xx[2]라는 배열 자체를 포인터하는 변수이다'라고 할 수 있다. 이 점 유의하고 시작하자. int n[2]; int (*ptr)[2]; p = n; //에러 p = &n[0]; //에러 p = &n; //정상 n, &n[0], &n은 모두 같은 값을 가지게 된다. 하지만 값이 같다고 무작정 쳐넣으면 안된다. 자료형이 다르기 때문이다. 정리하자면 n[0] 은 int &n[0] 은 int* n 은 int[] &n 은 int(*) [] 여기까지는 괜찮은데 그 다음부..