모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    황금비님의
    개인페이지입니다
    가입 : 13-10-13
    방문 : 2713회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_5238
    작성자 : 황금비
    추천 : 0
    조회수 : 911
    IP : 121.143.***.81
    댓글 : 16개
    등록시간 : 2014/09/01 10:23:54
    http://todayhumor.com/?programmer_5238 모바일
    포인터를 사용한 swap
    앞서 제가 글을 올렸는데 정리를 더 해서 오해를 만들 지 말았어야 했는데 .. 뭐 제가 표현력이 없어서 그렇다고 생각하시면 될 것 같습니다.
    좀 더 좋은 내용으로 가는게 제 목적이구요, 이번엔 좀 더 깔끔한 코드 준비했습니다.

    대상은 swap 함수. 포인터 예제로 간단하면서 실용성이 높은 함수입니다. 또 제가 자주 사용하는 함수이기도 합니다.

    class User {
    private:
    int id;

    public:
    int hp;

    User() : id(0), hp(0){};

    void SetId(int v) { id = v;}
    int  GetId()      { return id; }
    };

    void Swap (void* _a, void* _b, int width) {
    char* a =(char*)_a;
    char* b =(char*)_b;
    char tmp;

    if(a == b)
    return;

    while (width--) {
    tmp = *a;
    *a++ = *b;
    *b++ = tmp;
    }
    }

    //...

    int main() {

    User a;
    User b;

    a.SetId(100);
    b.SetId(100000000);

    Swap(&a, &b, sizeof(User));
    printf(" a.id = %d\n", a.GetId());

    return 0;
    }

    데이터 타입에 관계 없이 모든 데이터에 대해서 swap이 될 수 있도록 void형 포인터로 인수 값을 받습니다.
    void 포인터는 주소만 받기 때문에 이를 byte 단위로 복사하기 위해서 char형 포인터로 캐스팅 했습니다.

    User 클래스는 private를 가지고 있으나 swap 함수에서는 그런거 필요 없게 됩니다.
    a 객체의 id를 100으로 설정하고 b의 객체의 아이디를 100000000 설정해서  Swap 함수로 돌리면 둘은 바뀌었음을 볼 수 있습니다.

    이 함수는 멤버의 접근 권한이나 뭐 그런 거 없이 그리고 객체의 타입에 상관 없이 swap시켜준다는 것입니다.



    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    72
    무슨 갤럭시 7 도 아니고 황금비 16/09/22 21:40 90 0
    71
    게임 업계 아재가 게임 프로그램 배우는 분들에게 해주는 도움 안되는 글 [7] 창작글 황금비 16/05/01 01:17 71 11
    70
    지하철 잡상인 - 유머글 아닙니다. [1] 창작글 황금비 16/04/02 10:23 35 0
    69
    러블리즈 가입했습니다. [2] 창작글 황금비 16/02/21 17:18 100 10
    68
    A Tour of C++ 발 번역 [2] 창작글 황금비 16/02/21 10:24 54 11
    67
    프로그래밍, 하는만큼 늡니다. [2] 창작글 황금비 15/06/15 23:06 46 2
    66
    개콘에서 푸리에 급수 황금비 15/03/08 22:19 75 0
    65
    주말이 끝나는 시점에서 심심해서 하나 더 sort [1] 황금비 14/11/02 17:53 41 1
    64
    스트레스 풀겸, 그냥 심심해서 [1] 황금비 14/11/02 15:15 63 0
    63
    심심해서 큐 만들어봄 황금비 14/10/07 18:26 43 2
    62
    아오 빡쳐. [2] 황금비 14/10/05 18:47 20 1
    61
    시리야 사태 [2] 황금비 14/10/04 23:07 82 2
    60
    아오.. 빡쳐... 아오 evo ssang.. [3] 황금비 14/09/24 05:56 167 1
    59
    terminal ide [6] 황금비 14/09/23 01:33 28 0
    58
    암당 [5] 황금비 14/09/22 14:27 99 0
    57
    100만원대 초반 예상 견적 [5] 황금비 14/09/22 09:09 147 1
    56
    나름 자부심 [4] 황금비 14/09/21 23:46 52 0
    55
    90만원대에 많이 추천되는 견적 예상 [5] 황금비 14/09/21 14:36 163 0
    54
    영어지만 대충 표만 봐도 어떻게 바뀌었는지 알수 있겠네요. [2] 황금비 14/09/20 00:01 57 1
    53
    컴퓨터 지름 [5] 황금비 14/09/16 15:36 77 0
    52
    포토샵 스크립트 황금비 14/09/15 20:59 32 1
    51
    디스어셈블리 인텔 opmap, moder/m, sib [2] 황금비 14/09/13 15:35 35 1
    50
    27D850T 삼성 <- 이모니터 어떤가요? [1] 황금비 14/09/07 22:50 55 0
    49
    xor swap [14] 황금비 14/09/04 18:36 23 0
    48
    IHS 없는 뚜따 [10] 황금비 14/09/03 12:36 133 1
    47
    C++ PROGRAMMING LANGUAGE 4th advise만 발번역 [4] 황금비 14/09/01 19:50 33 5
    포인터를 사용한 swap [16] 황금비 14/09/01 10:23 48 0
    45
    포인터 스포일 [21] 황금비 14/08/31 01:42 28 3/4
    44
    제가 사용하는 const, double poiner 입니다. [2] 황금비 14/08/30 02:22 38 1
    43
    모바일 게임 엔진 만드시는 분들 계신지요. [6] 황금비 14/08/26 17:59 29 0
    [1] [2] [3] [4]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈