디시인사이드 갤러리

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

갤러리 본문 영역

[포인터 한방소스] 포인터의 모든것 - 이제 포인터로 글을 올리지 말라.

후보적핏도생갤로그로 이동합니다. 2014.02.28 22:30:06
조회 3514 추천 14 댓글 5
														


viewimage.php?id=3dafdf21f7d335ab67b1d1&no=29bcc427b18a77a16fb3dab004c86b6f01720db71ff9b164c6266ac822e9ba8d384049518b23197caeb67db3a2eb2fffdb7f56254b1b0acaa735ff611a



/*

POINTER LESSON FOR HANDICAPPED

장애인을 위한 포인터 강의


BY HU-BO-JUK-PIT-DO-SEONG


모든 권한과 권리는 나한테 있다.

*/


#include <stdio.h>


//

// 포인터 기초

//

// &[변수]는 *하나 늘리고, *[변수]는 *하나 줄입니다.

//


void _Swap(void ** _Left, void ** _Right)

{

// void * = 임의의 변수, object라고 해도 무방함.


// _Left의 값을 얻어온다. *변수 = 주소로부터 값얻기

char * _T = (char *)*_Left;


// _Left를 참조하여 _Right값을 옮긴다.

*_Left = *_Right;


// _T를 _Right로 옮긴다.

*_Right = (void *)_T;

}


// char *의 주소값을 넘겨받기 위해서 *를 하나 더 붙여줍니다.

void inc(void ** _Ptr)

{

// 주소를 한단계 올린다.

((char *)*_Ptr)++;

}


void inc_call(void ** _Ptr)

{

// *_Ptr : 값을 가져오고,

// &*_Ptr : 그것의 주소를 가져온다.

inc(&*_Ptr);

}


void _Equal(char ** _Left, char _Right)

{

// *_Left : 값을 가져오고, char *

// **_Left : 그것의 값을 가져온다. char

if (**_Left == _Right)

inc(&*_Left);

else

((char *)*_Left)--;

}


//

// 함수포인터

//

// 선언 : 반환값 (* 함수이름)(인수들)

// 리턴 : 함수반환값 (* 함수이름(인수))(반환할 함수 인수)

//


int plus_a(int a, int b)

{

// 단순한 덧셈

return a + b;

}


int minus_a(int a, int b)

{

// 단순한 뺄셈

return a - b;

}


int (* plus_minus(int what))(int, int)

{

int(*plus)(int, int); // 선언

int(*minus)(int, int);

plus = plus_a; // 대입

minus = minus_a;

if (what == 0)

return plus;

else

return minus;

}


int mul_a(int a, int b)

{

// 단순한 곱셈

return a * b;

}


int div_a(int a, int b)

{

// 단순한 나눗셈

return a / b;

}


int (* mul_div(int what))(int, int)

{

int(*mul)(int, int); // 선언

int(*div)(int, int);

mul = mul_a; // 대입

div = div_a;

if (what == 0)

return mul;

else

return div;

}


// 이중 함수 포인터

int (*(* plus_minus_mul_div(int what))(int))(int, int)

{

int(*(*plus_minus_t)(int))(int, int);

int(*(*mul_div_t)(int))(int, int);

plus_minus_t = plus_minus;

mul_div_t = mul_div;

if (what == 0)

return plus_minus_t;

else

return mul_div_t;

}


main()

{

int a, b;

char t[] = "yomiko wa bbaka. ";

char * ptr = t;

a = 10; b = 11;

_Swap(&a, &b);

printf("%d %d ", a, b);


// ptr의 주소를 넘깁니다.

// char * + & = char **와 같습니다.

inc_call(&ptr);

printf(ptr);


// ptr의 첫 문자와, o문자가 같은지 확인합니다.

_Equal(&ptr, 'o');

printf(ptr);


// 주소에 4만큼 더해줍니다.

ptr += 4;

printf(ptr);


// 값에 2만큼 더해줍니다.

*ptr += 2;

printf(ptr);


// 주소에 4만큼 더합니다.

// ptr = char *;

// &ptr = char **;

// *&ptr = char **& = char *;

*&ptr += 4;

printf(ptr);


// 값에 1만큼 더합니다.

// ptr = char *;

// &ptr = char **;

// *&ptr = char **& = char *;

// **&ptr = char **& = char;

**&ptr += 1;

printf(ptr);


// wht값이 0이므로 plus연산 실행

a = plus_minus(0)(1, 3);

printf("%d ", a);


// mul_div -> mul 순으로 호출 곱하기 연산실행

b = plus_minus_mul_div(1)(0)(2, 4);

printf("%d ", b);


return 0;

}

추천 비추천

14

고정닉 1

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 며느리, 사위되면 시댁, 처가에 잘할 것 같은 스타 운영자 25/10/13 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47976 65
2896733 치토스 모모링 ♥덩냥이♥갤로그로 이동합니다. 07:59 12 0
2896732 인지과학조져라 손발이시립디다갤로그로 이동합니다. 07:17 11 0
2896731 ❤✨☀⭐⚡☘⛩나님 시작합니당⛩☘⚡⭐☀✨❤ ♥덩냥이♥갤로그로 이동합니다. 07:09 10 0
2896730 M5 램 용량 그대로네 거름 ♥덩냥이♥갤로그로 이동합니다. 07:07 19 0
2896729 30대 문과 한미 이중국적자 it나 인공으로 빅테크취업하는법좀요 ㅇㅇ(59.23) 06:47 23 0
2896727 음기 충전 발명도둑잡기(211.246) 03:10 41 0
2896726 IT 쪽 프리랜서 가능한 직업 뭐 있지 [3] 프갤러(67.162) 02:50 39 0
2896725 와 한국인 가술력 개쩐다 ㄷㄷ ㅇㅇ(106.101) 02:20 46 0
2896724 만약에 캄보디아에서 이재용 아들 납치되면 무슨일 벌어짐 ?? [1] ㅇㅇ(223.39) 02:11 56 0
2896721 귀무가설 발명도둑잡기(211.246) 01:07 20 0
2896720 그냥 갑자기 궁금한건데 캄보디아 사람하나 빼내오는게 힘든일임?? [1] ㅇㅇ(223.39) 00:50 36 0
2896718 음악 관련 기술 서비스 10선 발명도둑잡기(211.246) 00:40 19 0
2896717 반대로 생각할 줄 알아야한다. [1] 프갤러(110.8) 00:37 57 0
2896715 번역은 중국모델이 제일 좋음. 이유가 [2] ㅆㅇㅆ(113.192) 00:24 50 0
2896714 요즘 느끼는게 AI 나오고나서 AI번역 쓰니까 좆되지 않냐? [3] ㅆㅇㅆ(113.192) 00:21 60 0
2896713 업계 선배에게는 배울것이 반드시 하나쯤은 있다 [4] 박민준갤로그로 이동합니다. 00:18 65 1
2896710 SSH로 접속 가능한 채팅+BBS 만들었습니다 [3] 파란빤스갤로그로 이동합니다. 10.15 74 0
2896706 美 공화당 MZ 간부들 채팅기록 유출…노예제·히틀러 칭송 발명도둑잡기(211.246) 10.15 30 0
2896705 근데 생각해보면 담배값 존나 비싼거네 ㅇㅅㅇ ㅇㅇ(223.39) 10.15 34 0
2896698 윈도우 ui를 맥이나 태블릿처럼 쫀득쫀득한 느낌나게 바꾸는 법은 없나요 [2] 프갤러(211.192) 10.15 62 0
2896695 리눅스 쓰는 사람 있나요 [9] 프갤러(211.192) 10.15 139 0
2896694 클린 아키텍처말고 [4] 루도그담당(58.239) 10.15 75 0
2896693 근데 확실히 내 이해가 좀 많이 얕노 [2] ㅆㅇㅆ(113.192) 10.15 81 0
2896692 갤러리 존나 기괴하네 [1] 프갤러(106.101) 10.15 82 6
2896691 세상엔 올바른 코드는 없지만 유지보수하기 쉬운 코드는 존재한다 프갤러(61.75) 10.15 30 0
2896690 [해설] 미국 셧다운 장기화, 어디까지 번질까? 발명도둑잡기(211.246) 10.15 19 0
2896689 그냥 타입참조가 밖에서 안으로 흐른다 <<이거 하나로 이해해 [8] ㅆㅇㅆ(113.192) 10.15 91 0
2896687 미제국주의 침략의 도구가 된 노벨평화상 발명도둑잡기(211.246) 10.15 17 0
2896686 도메인 << 워딩 보면 볼수록 병신같음 루도그담당(58.239) 10.15 44 0
2896685 "10·15 부동산 대책, 文 떠올리게 해"…경실련·참여연대도 비판 발명도둑잡기(211.246) 10.15 23 0
2896683 보통 안드로이드 클린 아키텍쳐라는게 대략 이런구조잖아 [5] ㅆㅇㅆ(113.192) 10.15 78 0
2896679 전체 맥락을 이해 못하니 좀 쉽게 설명해줌 [3] ㅆㅇㅆ(113.192) 10.15 65 0
2896678 미래의 여사친한테 텔레파시를 받았다 [1] 발명도둑잡기(211.246) 10.15 30 0
2896676 124.48은 좀 아스퍼거라 이 문맥적인 판단력이 떨어지는거 같음. [1] ㅆㅇㅆ(113.192) 10.15 49 0
2896674 근데 프로그래밍 이야기하다보면 맨날 실없는 소리 밖에 못하게됨 [2] ㅆㅇㅆ(113.192) 10.15 53 0
2896673 최원종 시즌2 예감 발명도둑잡기(211.246) 10.15 74 0
2896672 이 대사가 자토이치 오마주엿넹 ㄷㅅㄷ ♥덩냥이♥갤로그로 이동합니다. 10.15 20 0
2896671 클린 아키텍쳐를 선택하는 건 낮은 비용이라서 그런거임 [4] ㅆㅇㅆ(113.192) 10.15 58 1
2896670 칼집이 없는 칼 같이 날카로운 삶 [1] ♥덩냥이♥갤로그로 이동합니다. 10.15 33 0
2896669 형태에 집착하면 기능을 잃게 됨. 근데 보통 형태에 집착하지 ㅆㅇㅆ(113.192) 10.15 20 0
2896668 가령 프레임워크에 따라서 트랙잭션 모델이 다르고 ㅆㅇㅆ(113.192) 10.15 20 0
2896667 어차피 설계라는게 프레임워크에 따르게 되있어서 어떤 프레임워크 선택하는가 [1] ㅆㅇㅆ(113.192) 10.15 48 1
2896666 와이파이로 휴대폰에 바이러스 심는거 가능? ㅇㅇ(146.70) 10.15 15 0
2896665 자토이치 보구 뭔가 생각이 바겻당 ♥덩냥이♥갤로그로 이동합니다. 10.15 53 0
2896664 기능 구현만 잘하는 개발자인데 더 잘하고 싶어 (조언부탁) [21] 프갤러(112.149) 10.15 116 0
2896660 연락와서 처리중 ㅆㅇㅆ(113.192) 10.15 27 0
2896656 유튜브 ui왜 개병신됨?? 진짜 왜 그러는거임 ㅇㅇ(223.39) 10.15 30 0
2896655 자토이치 ㄹㅇ 존나 머싯따.. 낭만검객.. ♥덩냥이♥갤로그로 이동합니다. 10.15 26 0
2896652 저장용 ♥덩냥이♥갤로그로 이동합니다. 10.15 20 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2