|
#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의 의미를 알고싶습니다. 부탁드리겠습니다.
|