& (참조)
: 주소값 반환
#include<iostream> int main(){ int a1 = 3; int &a2 = a1; // a1를 참조하는 a2 // a1과 a2는 같은 주소를 갖는다. a2 = 5; // 그래서 a2를 수정하면 a1도 바뀜! printf("a1 = %d\n", a1); printf("a2 = %d\n", a2); return 0; [출력결과] a1 = 5 a2 = 5 }
[조건]
- 상수를 참조할 수 없음. ( int &num = 2; )
- 참조하는 값이 없는 경우 선언 불가. ( int # )
- NULL값 참조 불가. ( int &num = NULL; )
* (포인터)
- 포인터 변수 선언 (형식: 형* 포인터이름)
- 포인터가 가리키는 주소의 '값' (형식: *포인터 이름)
[예시] int* ptr1; == int형 변수를 가리킬 수 있는 ptr1 *ptr2 == ptr2가 가리키고 있는 주소에 있는 값