int* pInt = nullptr;
자료형 + * 자료형 해당 포인터에게 전달된 주소를 해석하는 단위.*를 붙여서 자료형의 변수를 가리키는 주소값.해당 주소로 갔을 때,
자료형의 형태로 그 값을 해석한다
nullptr : null 주소, 아무것도 가리키지 않는다. (실제값 0)int i = 100;
int* pInt = &i;
&i : 변수 i의 주소를 나타냄.pInt는 i의 주소를 저장하고 있다.메모리 공간에서 변수가 할당받은 위치.
&변수&변수 : 변수 앞에 &를 붙여 해당 변수의 주소값을 사용할 수 있음.*변수int i = 100;
int* pInt = &i;
(*pInt) = 500;
*포인터 변수 : 포인터 변수 앞에 *를 붙여서 해당 주소로 접근해서 값을 직접 수정할 수 있음.
int* pInt;
포인터 변수 선언 때 앞에 자료형을 앞에 적는 이유?
int* pInt; pInt의 위치로 가서 4 byte만큼의 공간에 있는 값을 가리키는 것.int i = 100;
int* pInt = &i;
float f = 3.f;
pInt = &f; // 이건 문법적으로 방어해줌 : 컴파일 에러
pInt = (int*)&f; // 명시적 형변환으로 억지로 넣을 순 있음.
int num = *pInt; // 이 값은?
int*에 동일한 크기의 float 주소값을 강제로 넣은 상황*pInt메모리 안에 있는 비트값을
어떤 방식으로 해석하는가에 따라 아예 다른 값이 되는 것.
- 값이 바뀐게 아님
값을 해석하는 방식에 따라 결과가 달라진 것
int* pInt = nullptr; // 이 위치로 가면 int로 해석할 것
char* pChar = nullptr; // 이 위치로 가면 char로 해석할 것
short* pShort = nullptr; // 이 위치로 가면 short으로 해석할 것