Hyunwoo Lee
Mar 5, 2024

C++ pointer

  • lvalue vs rvalue

lvalue means its location, rvalue its value.

  • pointer vs reference

defining reference w/o initializing is an error.

void main (){
int *a; // no problem
int &b; // error !!-> 레퍼런스 변수는 선언시에 초기화가 필요하다.

int d0 = 1, d1=1;
int * d_ptr = &d0; // 포인터 변수 선언하면서 초기화시 주소를 입력.
int & d_ref = d0; // 레퍼런스 변수 선언하면서 초기화시 변수를 그대로 입력.

d_ptr = &d1;
*d_ptr = 2; // 선언후에 포인터변수 값 변경시 *를 붙임
d_ref = 2; // 선언후에 레퍼런스변수 값 변경시 아무것도 안붙임

int *n = new int;
*n =*d_ptr+1;
cout<<*n<<endl;
int *k;
*k = 6; // error !!-> 포인터가 초기화되지 않은 경우 값을 입력 불가.
k = n;
}