|
2005년 12월 28일
오늘 포인터에 대해서 외우는 것이 아니라 제대로 이해를 하기 위해 공부했습니다.
가뜩이나 이해력 딸리는 머리라 뜻을 너무 힘들었습니다. 휴~ 일단 CN님의 포인터 구구단에서 우선순위를 읽어봤습니다. 이제 머리를 괴롭혀 볼까요? ㅡㅡ; int *p[2]; //포인터 배열 int (*p)[2]; //배열의 포인터 포인터 배열은 말그대로 int형 변수의 주소를 값으로 가질 수 있는 2개짜리 포인터 변수입니다. p[0] = &n1; p[1] = &n2; 이런식으로 사용합니다. 문제는 배열의 포인터 였습니다. 도대체 이게 무엇을 말하는 것인지 봐도봐도 이해가 안되더군요. 직접 코딩 테스트를 통해서 삽질을 해서 알았습니다. 배열크기가 [SIZE]인 변수를 참조할 수 있는 포인터 이더군요. ㅡㅡ; 저는 계속 (*p)가 2개라고 생각하고 있었습니다. 우선순위에 따라서 읽어보겠습니다. "(*p)포인터인데 배열[2]짜리 int 형 변수를 가리킬 수 있는 변수" 그런데 문제가... int n[2]; int (*p)[2]; p = n; //에러 p = &n[0]; //에러 p = &n; //정상 n = &n[0] = &n 이 모두 같은 값을 나타내는데 에러가 난다는 것은? 나름대로 이론을 잡아가고 있었는데 이 부분에서 팍 막혀버렸습니다. 처음에는 대충 생각없이 &n과 n의 값은 서로 다를거라고 생각했는데 출력해보니 같은 값;; 디버그를 내용은 아래와 같습니다. cannot convert from 'int [2]' to 'int (*)[2]' //p = n; cannot convert from 'int *' to 'int (*)[2]' //p = &n[0]; 이런~ 즉, 이말은 변수형이 틀리다는 뜻인가? 패닉에 빠지기 시작합니다. 이렇게 되면 n = &n[0] = &n 가 값이 같다고해서 같다고 생각할 수 없군요. 아래와 같이 표현할 수 있겠습니다. n[0] 은 int &n[0] 은 int * n 은 int [] &n 은 int (*)[] 그렇다면 지금까지 &는 해당변수의 주소값을 나타낸다 라고 생각했는데 단순히 그렇게 생각하면 안되겠습니다. &는 해당변수의 주소값을 가지고 있는 임시의 포인터변수와 같이 되는 것이라고 해야하지 않을까요? 그럼 이제 좀더 괴로움에 떨어 볼까요? ㅡㅡ; int n[2][2]; int (*p)[2]; p = n; //정상 p = &n[0]; //정상 &n[0]에서 n[0]는 n[0][0]를 가르키는 int [2]이고 여기에 &를 함으로써 int (*)[2]가 되었습니다. 그렇다면 n은... 머리가 복잡해지네요. ㅠㅠ n은 n[0]를 가르키는데 n[0]는 int [2]이기에 int [2]를 가르킬 수 있는 n은 int (*)[2]형이어야 한다고 해석할 수 있겠습니다. 참고로 &n은 int (*)[2][2] 라고 나옵니다. 당연히 int[2][2]를 가르킬 수 있는 포인터 변수형은 int (*)[2][2] 일 수 밖에 없겠지요? (ㅡㅡ;) 마지막으로 배열의 포인터라 함은 배열을 가르킬 수 있는 포인터임이 확실하다 라고 말 할 수 있겠습니다. 역시 국내의 암기식 포인터 교육의 한계가 느껴지네요. ㅠㅠ 배열에 포인터가 이렇게 난무하니까 힘드시죠? 하지만 우리에겐 구조체와 클래스가 있습니다. 만세~! ^^ |
ABOUT
이글루 파인더
카테고리
그냥 잡담
최근 등록된 덧글
저는 우분투에 다음체를 설치해보지 않..
by -A2- at 14:30 화면 맨 아래 아이콘들은 Avant Windo.. by -A2- at 14:28 윈도우쪽엔 둘다 적용해본 결과 다음체.. by LIVey at 13:30 우분투 8.10 정식 나올때 까지 15일 남았.. by 라이언 at 10/15 저도 공감해요. ㅋㅋ by -A2- at 10/15 얼마전에 KLDP보니까 이제 리눅스를 .. by 주성치 at 10/14 Factory Method와 Abstract Factor.. by -A2- at 10/14 Compiz Fusion을 쓰는 우분투에 테마.. by -A2- at 10/14 정말 오랜만에 변경했어요. 스샷 포스팅.. by -A2- at 10/14 꼭 한번 써보세요. ^^ by -A2- at 10/14 왠만하면 노트북에도 우분투 잘 돌아가요.. by -A2- at 10/14 우찌 맥하고 짬뽕이 된 인상입니다. by 도아 at 10/14 그리고, Factory Method Pattern은 .. by 나무귀신 at 10/14 DriverManager는 내부적으로 Factory.. by 나무귀신 at 10/14 오랫만에 테마 변경 포스팅을 쓰셨네요... by 까칠한JC at 10/14 우와.... 우분투 멋지네요.... 저도.. by Rakuen at 10/14 너무이뻐서 깔아보고 싶어도.. 14인치 .. by 배가본드 at 10/13 스샷 찍으시면 트랙백 쏴주세요. ^^ by -A2- at 10/13 제가 원래 좀 심플하게 씁니다. ㅋ ^^ by -A2- at 10/13 네~ 짱! 멋있어요. ^^ by -A2- at 10/13 최근 등록된 트랙백
[술에 관한 초인보고서] 바톤 릴레이
by Art & Soft Space ★ 어느 가을날, 즐거운 기억의 단상. - .. by ** MY's kitchen ** MBTI 성격 테스트 by 행복한 개발을 위한 블로그 MBTI 유형테스트 by xylosper's notebook 술에 관한 바톤 문답. by 900gle.info 『술에 대한 나의 생각』12문답 바톤 이.. by Lovely~♡ 술에 관한 바톤 문답 by 조약돌의 이야기 바다 네이버에서 배포하는 '나눔글꼴'을 리.. by 체리필터의 인생이야기 [바톤]술에관한 문답 by 김Su 다. 술에 관한 바톤 문답 by 감성 일기 술에 관한 바톤 문답- by 해피-잡다구리구리~ 술에 관한 바톤 문답 - 이거 수위가 ....!! by ** MY's kitchen ** MBTI 검사를 하다 : ) by BreezyMind A2님의 블로그에서 본 MBTI 검사 by 온새미의 블로그 MBTI by 친절한 냥이님 :D MBTI검사를 해 보았습니다. by 뚜찌의 skillOn* 올블로그 파도타기 놀이 by 멀뚱이 블로그 2008년 MBTI 검사 결과 by Programmer greenfrog !! 석환의 생각 by plute's me2DAY [100번째 포스팅] 감사합니다. 고맙.. by ** MY's kitchen ** 이전 블로그
라이프 로그
|