포인터 질문!
날애
2023.10.23
int main(void)
{
int a=2005;
int* PA=&a;
printf( &d , PA);
printf( &d , *PA); //2005 출력
의 결과값 차이가뭐죠?;;
결과값 차이에 대한 설명좀 ㅠㅠ;;
-
다니엘 2023-10-23
a 는 변수입니다. 변수는 메모리를 편하게 사용할 수 있도록 이름을 붙인 것입니다.
변수 a 는 어떤 지역의 4 바이트 메모리를 묶어서 a 라고 명명한 것입니다.
이렇게 메모리를 지칭한 것을 참조라고 합니다. 변수 외에도 메모리를 지칭하는 방법은
포인터(자료형이 알려진 주소)에 * 를 붙이는 방법,
포인터에 [i] 를 붙이는 방법이 있습니다.
PA에는 a의 4 바이트 중 첫번째 바이트의 주소가 저장되어 있고,
그 포인터에 * 연산자를 적용하면 그 4 -
늘솜 2023-10-23
*는 역참조 연산자로 포인터가 가르키는 주소에 있는 값을 출력합니다
PA만 하면 a의 주소를 10진수 형태로 출력하고 *PA로 하면 a에 있는 값을 출력합니다