모바일 오유 바로가기
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-11-18
    방문 : 735회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_2116
    작성자 : 콜드이슈
    추천 : 3
    조회수 : 759
    IP : 203.84.***.251
    댓글 : 6개
    등록시간 : 2014/03/25 15:05:46
    http://todayhumor.com/?programmer_2116 모바일
    c/c++에서 포인터란? (1편)
    개강 시즌을 맡이해 깨작깨작 하는 포인터 설명 시리즈입니다.

    1.정의 :  어떤 값이 저장된 곳의  [주소]를 가지고 있는 변수(메모리 공간) 입니다.

    여기서 주소의 타입은 unsigned int 입니다. 무슨말인가 하면  우리가 쓰는 집주소는 한글로 되어있지만(예: 서울시 콩구 콩동 2222-22) 컴퓨터에서 주소는 보통 숫자로 되어있습니다. (예:12355123)

    2.왜 쓰는가?

    예로 들어보지요. 

    공대생답게 지적인 외모에, 깔끔한 옷차림, 프로그래머답게 셜록 뺨때리를 후려갈기는 추리능력에 다년간의 연애 시뮬레이션으로 단련한 매너와 기품이 배어나오며 당장이라도  P=NP문제의 증명과 내비어-스톡스 방정식의 해법을 칠판에 휘갈겨 증명할듯한 오라를 풍기는 당신은 학교 퀸에게 고백을 받아 사귀던 도중 생일을 맞이하게 됩니다. 
    박보영을 닮은 청초한 외모에 당신만 바라보는 순정파인 여자친구는 생일 선물로 이번 "디x블로3 : 똥을 치우는 자" 의 한정판을 구해 당신에게 주려 합니다. 하지만 과제의 압박에서 벗어나지 못하는 당신은 여자친구에게 자취방에다가 가져다 놔 줘 라고 부탁합니다. 
    이때 당신은 여자친구를 자기 집으로 어떻게 안내할까요?

    1) 집 주소를 알려준다.
    2) 집건물  "때어서"  안에 있는 가구며 컴퓨터며 설거지를 못해 널린 접시들 까지 싸그리 "복사"해서  여자친구앞에 가져다 준다.  

    1) 번에 비해 2) 번은 많은 문제가 있습니다. 
    첫째로 번거롭지요. 일단 집을 통채로 복사해서 넘겨주는거 자체가 엄청난 스케일이고 복잡하고 실제로 가능할지 여부는 그렇다고 쳐도 노력대비 얻는게 없습니다. 
    둘째로 어떻게든 복사를 해서 가져다 여자친구에게 집의 복사본을 줬다고 해도 디아블로3 한정판은 여러분의 집에 없습니다. 왜? 복사된 집에 있을태니까요. 
    셋째로 당신이 이사를 했습니다. 다음번엔 다시 다른 집을 복사해서 줘야 합니다. 1)번을 따른다면 그냥 변경된 주소만 주면 되지요.

    1)번이 여러모로 이점이 많은걸 알 수 있습니다. 

    물론 대상이 집채만큼 커다란게 아니고 메모라던지 작은 글귀 정도라면 메모의 위치를 주기보단 그냥 복사해서 주는게 더 빠르겠죠.(있다 설명하겠지만 int, dobule ,char 등의 primitve 타입을 말하는겁니다.) 하지만 메모들이 많이 모인 책 정도만 되도 복사해서 주기보단 그 위치를 주는게 더 빠릅니다.
    그밖의 여러 장점은 차차 설명하겠습니다. 
    물론 단점도요.

    자 이제 여러분이 오유인임을 자각하고 KICK을 해서 현실로 돌아와서..(Non, Rien de rien , Non, Je ne regrette rien~)


    3.어떻게 쓰는가?

    여러분이 
    int x=5;  
    라고 적고 컴파일을 하고 실행을 하면 컴퓨터는 int의 크기 만큼의 공간을 메모리에 만듭니다. 그리고 그 메모리 공간 안에 5라는 값을 넣어두지요. 
    *int의 크기는 운영체제에 따라 다릅니다. 16비트 운영체ㅔ에선 16bits, 32bit 와 64bit에서는 32bits 입니다.
    그리고 그 공간은 주소를 부여받게 되죠. 여러분이 사는 집주소 처럼요. 편의상 @1234 라고 합시다.(@는 주소라는 의미. at이라는 뜻이죠) 

    여담으로 여기서 왜 32비트 운영체제는 4GB의 메모리 이상을 사용할 수 없는지의 이유가 나옵니다. 32비트 체제에서는
    그 주소는 32비트 단위로 사용되며 결국 2^32*byte=4gb  까지밖에 주소가 나오질 않습니다. 그래서 4gb넘어도 주소로 쓸공간이 모잘라서 쓰질 못하는겁니다. 반대로 64비트는 그만큼 주소를 더 내놓을수 있기에 더 많은 메모리를 쓸 수 있게 됩니다.

    아무튼 여러분은 이제 그 주소를 통해 마음것 메모리 공간을 조정할 수 있습니다. 주소를 사용해 보지요.

    int* pX= &x;  

    다음 문장엔 많은 의미가 있습니다. 차근차근 살펴보죠.

    int* :  *가 붙으면 별 붙어서 승급했다는게 아니고 그 타입의 포인터 형이라는 뜻입니다. int도 타입이고 dobule도 타입인거처럼 int*도 타입입니다. 바꿔말함 그 타입의 메모리 공간의 주소를 값으로 가지고 있다는 겁니다. 위에서 케이스에서 @1234 를 가지고 있겠죠?

    pX : 포인터 타입도 변수이므로 변수명을 준겁니다.p는 포인터의 약자입니다. 

    = : 대입연산자. 끗(equal이 아닙니다? == 요거랑은 달라요)

    & :  뒤에 오는 놈의 주소를 알아내는 연산자입니다. 여기선 뒤에 x가 오니깐 x 라는 변수의 주소를 알아내라는 의미겠죠?


    위대한 한글로 풀어쓰면  
    "int형의 주소를 담을수 있는 int포인터 형식을 가진 이름이 pX이란애를 만들고 그 안에 x란 놈의 주소를 담아라."
    결국 pX안에는 x의 메모리 주소인 @1234 가 들어가게 되었습니다. 

    자  다음편에는  이놈을 어떻게 써먹을지 더 고찰하겠습니다.
    (다음편 커버내용: call by value, call by reference, 포인터의 포인터 )









    이 게시물을 추천한 분들의 목록입니다.
    [1] 2014/03/25 15:08:06  223.62.***.54  El  487178
    [2] 2014/03/26 09:09:24  122.49.***.49  리코님  330151
    [3] 2014/04/10 01:13:02  14.52.***.250  Lazy Ren  113887
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

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

    번호 제 목 이름 날짜 조회 추천
    44
    민주주의 근간이 휘둘린 사건이라는 관점에 대해 [19] 콜드이슈 14/12/19 15:33 189 4/8
    43
    너를 기다리는 동안 콜드이슈 14/12/15 13:20 19 2
    42
    오유 공식 인코딩은 아스키 코드라면서요? [4] 콜드이슈 14/11/26 14:34 62 13
    41
    Network Layer 에서 활동하는 슈퍼 히어로 [1] 콜드이슈 14/11/12 10:18 27 3
    40
    추석 내내 출근한 서버 개발자입니다. [9] 콜드이슈 14/09/08 22:52 39 2
    39
    C# 의 다양한 코드 스타일 정리 [7] 콜드이슈 14/08/22 11:56 69 15
    38
    I AM GROOT! [2] 콜드이슈 14/08/04 13:29 430 8
    37
    수화 욕설계 최강자 온라인 진출 [7] 콜드이슈 14/06/18 20:42 43 10
    36
    프로그램 짜다가 하다가 막혀서 질문 [10] 콜드이슈 14/05/26 22:02 41 10
    35
    질문글에 본인 삭제 금지 [13] 콜드이슈 14/05/22 08:15 48 11
    34
    오유 벼룩시장에서 찾은 진실 콜드이슈 14/05/18 15:17 88 2
    33
    프로그래머가 과속하는 방법 [21] 콜드이슈 14/05/13 19:54 64 11
    32
    심심하신 프로그래머 분들께 콜드이슈 14/04/24 13:06 63 1
    31
    경험상 대부분의 공대 여자 스타일 [4] 콜드이슈 14/04/24 11:20 95 0
    30
    [긴급]사용하는 웹사이트 비밀번호 바꾸세요. 콜드이슈 14/04/14 18:46 60 4
    29
    [주의]2일전 OpenSSL의 치명적인 취약점이 발견되었습니다. [1] 콜드이슈 14/04/12 01:54 59 4
    28
    난 프로그래머 게시판이 처음 생길때.. 콜드이슈 14/04/08 09:46 42 4
    c/c++에서 포인터란? (1편) [3] 콜드이슈 14/03/25 15:05 45 1
    26
    질문후 질문글 지우시는 분들께 [2] 콜드이슈 14/03/23 16:12 45 4
    25
    프로그래머가 자기 형이 맘에 안든다면? [3] 콜드이슈 14/03/20 09:45 94 3
    24
    코딩왕국 [2] 콜드이슈 14/03/03 15:51 69 4
    23
    Bogo Sort [2] 콜드이슈 14/02/25 20:53 31 0
    22
    C 고수분들 제발 도움좀 급해요. [5] 콜드이슈 14/02/14 15:10 34 2
    21
    픽업라인. [3] 콜드이슈 14/02/13 16:01 29 1
    20
    2011년 수능 언어영역 문제 풀어보세요. [1] 콜드이슈 14/02/06 17:42 37 1
    19
    리눅스용 러시안 룰렛 [9] 콜드이슈 14/02/06 16:03 62 0
    18
    어떤 컴퓨터 언어가 제일 좋아요? 라고 묻는다면 [1] 콜드이슈 14/01/28 11:24 56 1
    17
    사장이 맘에 안든 어느 개발자의 소스코드 [4] 콜드이슈 14/01/23 18:08 55 1
    16
    세상에는 10종류의 사람이 있습니다. [1] 콜드이슈 14/01/22 00:46 37 0
    15
    진정한 꿀팁을 알려드리죠. [4] 콜드이슈 14/01/20 21:02 43 1
    [1] [2] [3]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈