반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> using namespace std; int main(void){ int a[2]={6,10}; int *p=a; //포인터 p는 배열a의 첫번째 원소를 가리키는 포인터 int &r=*a; //r은 a의 첫번째 원소의 참조 int &r2=r; //r2는 r의 참조 (참조의 참조) cout<<a[0]<<endl; //6 cout<<*p<<endl; //6 cout<<r<<endl; //6 cout<<r+1<<endl; //6+1=7 cout<<a<<endl; //주소 cout<<&r<<endl; //첫번째 원소의 주소 =a cout<<*(&r)<<endl; //레퍼런스 주소의 역참조 = 6 cout<<*(&r+1)<<endl; //레퍼런스 주소에 1을 더한것의 역참조 = 10(2번째 원소) cout<<r2<<endl; //r2는 r을 가리키므로 6 } | cs |
포인터는 주소가 담기는 메모리가 할당 된다.
레퍼런스는 메모리 상의 특정 공간을 차지하는 것이 아니라 컴파일 시에
원래 레퍼런스가 참조하던 변수의 *(주소값)으로 대체되는 것이다.
반응형
'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글
MyIntStack 클래스 (0) | 2017.11.09 |
---|---|
포인터의 증감 (0) | 2017.11.09 |
float와 double (0) | 2017.11.05 |
히스토그램 (0) | 2017.11.03 |
Circle, CircleManager 클래스 (0) | 2017.11.03 |