디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

님들 제가 생각해낸 포인터 공부방법 평가점 ㅋㅋ

다들알겟지만(211.104) 2011.08.31 17:24:51
조회 111 추천 0 댓글 4

혼자 고민고민하다 생각해냇음 포인터 공부할때 힘들어하는사람들에게 가르쳐주면

좋을것같음 실제로 동기한테 설명했더니 이해가 엄청 잘된다고 했었음

포인터는 어떠한 변수의 주소값이다

int a=10;
int *a1=&a;라고 하면

a1는 a의 주소값이고 *a1은 주소값이 가진 값 즉 a인 10이다   //여기까지가 기본적인 포인터지식

C언어를 처음 배우면서 swap함수라는것을 만들어 보게 될텐데 포인터 연산을 아주 쉽게 해낼수 있는 방법이 있다

3중이나 4중 포인터로 보여줄수도 있겠으나 편의상 2중포인터로 설명하겠음

swap(int **a,int **b)
{
    자 여기를 어떻게 채울까
}
일단 메인함수를 보겠다

int main()
{
    int ap=10,bp=20;
    int *ap1=&ap, *bp1=&bp;        //여기를 잘보면 ap의 포인터 ap1을 선언햇음을 알수있다
    swap(&ap1,&bp1);                //&의 연산의 의미는 C언어에서 주소값을 반환함을 의미한다 고로 swap함수의 매개변수는
}                                                  1중포인터의 주소값을 전달햇으므로 2중 포인터가 된다 그래서 매개변수가 **a인것이다

이제 스왑함수의 몸체를 채워볼껀데 일단 스왑함수 호출전의 가리키는 현황인데 2중포인터를 이용해서
(ap <- ap1 <- &ap1 를 ap <- bp1 <- &bp1)              1중포인터가 가리키는 주소를 바꿔치기 할 것이다.
(bp <- bp1 <- &bp1 를 bp <- ap1 <- &ap1)           <----- 실제로 가리키게되는게 요렇게 바뀐다.

우선 임시자료인 temp(옴겨담을 그릇)를 선언을 할것인데 앞서말했든 이중포인터가 가리키는 값(일중포인터가 가리키는 주소)을 바꿀것이기 때문에 템프를 int *temp; 로 선언을 한다        이제부터 가장 중요한 스킬인 포인터 안 햇갈리는 방법을 가르쳐주겟다
이중포인터가 가리키는값은 1중 포인터이기때문에 temp에 *이 하나만 붙는것이다.

스왑함수의 매개변수 **a를 보겠다 앞서 말했듯 별을 붙이면 그 주소가 가진 값을 의미한다 고로

**a 는 메인함수의 ap를 의미한다
<정 리>
매개변수 a == &ap1(메인함수의 ap1의 주소값)
매개변수 *a == ap1(메인함수의) == &ap(메인함수의)
매개변수 **a == ap(메인함수의)

보다시피 매개변수에 하나도 별을 안붙엿을경우 메인에서 swap함수에 넣었던 &ap1이 들어간다

여기서 별을 하나씩 붙일때마다 가리키는 주소값이 가진 값을 의미하게 된다

이것으로 swap 함수를 만들어보면

void swap(int **a, int **b)
{  
    int *temp=*a;
    *a=*b;
    *b=temp;
} 가 되는것이다
*a는 정리에서 보다시피 ap1 즉 ap의 주소값과 같으므로 1중포인터가 된다

일중포인터를 스왑할것이기에 임시변수도 *temp가 되는것이다.

스왑함수 호출뒤 *ap1,*bp1 을 출력해보면 20 10 으로 값이 뒤바뀐것을 확인할수있다

이해를 했다면 3중 4중포인터로도 연습을 해보면 좋을것같다

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
268822 다중 파일 업로드를 위한 테스트 [4] 쿄스케갤로그로 이동합니다. 11.09.01 88 0
268821 UFO는 자유자재로 날라다니는데 지구 비행기는 왜 [5] 거칠게갤로그로 이동합니다. 11.09.01 85 0
268820 지금도 하늘에서 날라다니는 UFO 나 잡아서 국방부에 팔아라 [2] 거칠게갤로그로 이동합니다. 11.09.01 47 0
268818 나 중딩때 목사님이 프로그램도 앞으로는 말만하면 나온다고.. [7] .3(124.137) 11.09.01 103 0
268816 형들보면 이직 얘기 많이 하잖아 [4] 꽂꼼하(210.107) 11.09.01 90 0
268815 서버를 하나 두면 디씨앱에 새글 등록시 알람기능 가능할듯 한데.. [1] 쿄스케갤로그로 이동합니다. 11.09.01 95 0
268814 쿄스케횽은 봅니다 [5] +어게인갤로그로 이동합니다. 11.09.01 57 0
268812 디씨 어플 만든 사람 누구야!? 왜 이런 횽들은 프갤에 안와 ㅠㅜ? [8] 쿄스케갤로그로 이동합니다. 11.09.01 183 0
268811 형들 ㅜㅜ 아트메가128에 isp이용해서 프로그램 넣을려고 하는데 안됨 사람(1.250) 11.09.01 61 0
268810 형들 2학년 컴공 전공 이렇게 4개 짰는데 힘들까?? [3] ㅁㅁ(221.140) 11.09.01 141 0
268807 미니스커트인데 앞쪽으로 지퍼가 있고 [2] 분당살람갤로그로 이동합니다. 11.09.01 95 0
268806 기초부터 공부하는데 순서좀 도와주세요 [3] +(◕‿◕갤로그로 이동합니다. 11.09.01 96 0
268805 책에다 금가루를 발라놨나... [2] Arduous갤로그로 이동합니다. 11.09.01 90 0
268804 니들 술마실때 게임 하자나... 그때 .. iljeomobolt갤로그로 이동합니다. 11.09.01 150 0
268803 프로그래밍을 배우고 싶어 [12] 스피커(59.7) 11.09.01 165 0
268802 횽들아 상퀘한 아침이다~ 'ㅅ'/ [1] 거칠게갤로그로 이동합니다. 11.09.01 71 0
268801 '자바 아버지' 고슬링, 구글서 신생기업으로 이직 [1] 쿄스케갤로그로 이동합니다. 11.09.01 89 0
268800 여자랑 대화하는데 [1] 우ㅈ갤로그로 이동합니다. 11.09.01 111 0
268797 아 개강날임ㅋ [1] 나리링갤로그로 이동합니다. 11.09.01 46 0
268796 c프로그램 공부하는 학부생인데.. 노트북질문 [3] 질문자(118.37) 11.09.01 164 0
268795 프로젝트 아이디어 12개 넘게 빠꾸먹었어 형들 ㅠㅠ [6] +어게인갤로그로 이동합니다. 11.09.01 126 0
268793 출근~ [2] Kanon갤로그로 이동합니다. 11.09.01 46 0
268792 MIPS 어셈블리 랭귀지요. 도와주세요 제발 ㅠ 사례도해드림 도와주시면 [3] arm어렵다(149.169) 11.09.01 143 0
268791 재주는 내가 부리고 돈은 왕서방이 벌때 [1] 빡돌아(138.89) 11.09.01 58 0
268789 이거 공짜로 올리면 쓸사람 있으려나;; [1] 탐라국(121.159) 11.09.01 90 0
268787 아슈발.. 윈7폰 sdk끄적이다가 지금잔다..ㅠㅠ [2] 우왕국킹짱왕갤로그로 이동합니다. 11.09.01 93 0
268786 다들 수면섭취중? 모 물어봐야 되는데 [1] 우ㅈ갤로그로 이동합니다. 11.09.01 67 0
268785 난 이시간에 [1] 우ㅈ갤로그로 이동합니다. 11.09.01 69 0
268784 형들 제가 짠 소스에서 구조체배열 횟수지정하는거 어떻게해야할지 전모르겠음 [5] (˙˛.、·);갤로그로 이동합니다. 11.09.01 74 0
268782 rm ./0. * [2] 로하로하알로하갤로그로 이동합니다. 11.09.01 43 0
268781 지금 궁금한 거 하나 [3] ㅁㄹㄹㄷㅈㄹ(211.109) 11.09.01 71 0
268779 금요일 완성을 목표로 해야겠다 [1] y녀6디리(218.146) 11.09.01 62 0
268778 일찍들주무십숑 三didas갤로그로 이동합니다. 11.09.01 48 0
268777 java VS C# [4] 박구갤로그로 이동합니다. 11.09.01 244 0
268776 안드로이드를 어떤 이유에서 오픈소스라고 하는 것인가요? 안드로이드는 일종 [2] 질문돌이(14.32) 11.09.01 114 0
268775 클래스의 인스턴스를 인자로 하는 함수의 경우 함수반환값은 어떻게 되나요? [2] 질문돌이(14.32) 11.09.01 71 0
268774 밤에 일하는거 존나안좋다 씨발놈들아 [3] 김토끼(203.244) 11.09.01 117 0
268770 exec나 eval은 왜 쓰는 건가요? [2] ㅁㄴ(210.107) 11.09.01 89 0
268765 blackd횽 쿄스케횽 고생했음 ㅋㅋ [2] McHello갤로그로 이동합니다. 11.09.01 55 0
268764 님들 비베 질문좀; [3] 제랄(59.21) 11.09.01 63 0
268762 한국인들이 무슨 열심히살어. 열심히 착취당하는거지.ㅋㅋㅋ [1] 초식남(219.251) 11.09.01 96 0
268761 프갤성님들은 하루에 몇시간씩잠? [9] 읭읭읭읭갤로그로 이동합니다. 11.09.01 138 0
268760 어떤 언어를 배우지 [5] 박구갤로그로 이동합니다. 11.09.01 136 0
268759 형들 나 묻고싶은겡있어 [2] 찌르매미(203.229) 11.09.01 65 0
268758 횽아들 동생들 이거보고 감동받아~ [1] 공익짜잉갤로그로 이동합니다. 11.09.01 60 0
268757 거칠게 횽 글을 보니까 갑자기 생각났는데 [1] y녀6디리(218.146) 11.08.31 54 0
268756 이럴 때 batch 파일 만드는거 맞나요? [3] ㅁㄴ(210.107) 11.08.31 94 0
268755 서버에 vmware 깔아놓고 [3] 분당살람갤로그로 이동합니다. 11.08.31 72 0
268754 감사합니닷!! [7] 슈우과학갤로그로 이동합니다. 11.08.31 89 0
268753 翻来滚去 라는 한자 뭔뜻인지 아는 형 있냐 [1] y녀6디리(218.146) 11.08.31 71 0
뉴스 지드래곤 GD 방콕 월드투어 공연 일방적 취소로 팬들 반발..“휴가 계획과 경비를 전부 날렸다” 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2