C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[51452] Re:포인트 함수에서요 두수를 교환하는 예입니다. 주석을 달아주실수 있을까요?
너브 [] 949 읽음    2007-12-04 13:15
#include<iostream.h>
#include<conio.h>
main()
  {
    int x=50, y=100, z;
    int *p, *q, *r;

    cout << "현재 x 와 y의 값 그리고 z...." << endl;
    cout << "x = " << x << "\n";
    cout << "y = " << y << "\n";
    cout << "z = " << z << "<-- 초기화되지 않은 값. 쓰레값이라;;; \n";
    cout << endl;

    cout << "현재 x 와 y의 값 그리고 z의 할당된 메모리 번지수..." << endl;
    cout << "&x : 메모리 번지 = " << &x << endl;
    cout << "&y : 메모리 번지 = " << &y << endl;
    cout << "&z : 메모리 번지 = " << &z << endl;
    cout << endl;


    cout << "포인터 p,q,r의 주소(메모리 번지) <-- 쓰레기..." << endl;
    cout << p << ' ' << q << ' ' << r << endl;
    cout << "포인터 p,q,r이 가리키고 있는 값....<-- 쓰레기..." << endl;
    cout << *p << ' ' << *q << ' ' << *r << endl;


    // x,y,z 의 주소값(앞에 &를 붙임...)을 포인터 p,q,r에 넣어줌....
    p=&x;
    q=&y;
    r=&z;

    cout << "대입한 후의............." << endl;
    cout << "p : 메모리 번지 = " << p << endl;
    cout << "q : 메모리 번지 = " << q << endl;
    cout << "r : 메모리 번지 = " << r << endl;
    cout << endl;

    cout << "현재 *p, *q, *r 의 값....." << endl;
    cout << "*p = " << *p << " ";
    cout << "*q = " << *q << " ";
    cout << "*r = " << *r << " \n";
    cout << endl;

    *r = *p;
    *p = *q;
    *q = *r;

    cout << "변환후  *p, *q, *r 의 값....." << endl;
    cout << "*p = " << *p << " ";
    cout << "*q = " << *q << " ";
    cout << "*r = " << *r << " \n";
    cout << endl;

    cout << "x = " << x << "\n";
    cout << "y = " << y << "\n";

    cin >> x;                    // 입력보단 화면을 잠시 멈추기 위해서.....

}
=========================================================
위거 실행해 보세요...^^
&x <--- x를 저장하고 있는 메모리의 번지..
int *p 에서...
p <--int형 포인터.(메모리주소값...).
*p <--- p의 주소가 가리키는 곳의 값...



김문식 님이 쓰신 글 :
: #include<iostream.h>
: main()
:   {
:     int x=50, y=100, z;
:     int *p, *q, *r;
:
:     p=&x;
:     q=&y;
:     r=&z;
:
:     *r = *p;
:     *p = *q;
:     *q = *r;
:
:
:     cout << "x = " << x << "\n";
:     cout << "y = " << y << "\n";
:     cin >> x;
:     }
:
: x, y값을 서로 바꾸는 것인데..
: 제가 소스에대해 감이없어서 잘 모르겠습니다
: 알려주실수 있을까요??
:
: &x, &y 와 *x, *y의 의미를 알고싶습니다. 부탁드리겠습니다.

+ -

관련 글 리스트
51424 포인트 함수에서요 두수를 교환하는 예입니다. 주석을 달아주실수 있을까요? 김문식 1014 2007/11/30
51452     Re:포인트 함수에서요 두수를 교환하는 예입니다. 주석을 달아주실수 있을까요? 너브 949 2007/12/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.