2005년 5월 25일 수요일

C++ reference와 pointer의 주소 차이

$ cat ./ref.cpp
#include <iostream>

using namespace std;

int main()
{
    int a = 10;
    int& b = a;
    int* c = &a;

    cout << "a : " << a << endl;
    cout << "&a : " << &a << endl;
    cout << "b : " << b << endl;
    cout << "&b : " << &b << endl;
    cout << "c : " << c << endl;
    cout << "&c : " << &c << endl;
    cout << "*c : " << *c << endl;

    return 0;
}
[ilashman@ob cpp_test]$ ./ref
a : 10
&a : 0xbfffecc4
b : 10
&b : 0xbfffecc4
c : 0xbfffecc4
&c : 0xbfffecbc
*c : 10

--------------------------------------
pointer는 indirect로 주소를 가리키는 것이지만
reference는 같은 주소를 가리키는 것이다.
따라서 변수 a와 변수 b는 주소가 0xbfffecc4로 같다.

댓글 없음:

댓글 쓰기