C#만 쓰다가 C++을 공부 중에 있습니다.
이번에 운영체제를 공부하다가 포인터에 대해서 다시금 생각해보게 되었는데요
만약
int n = 1;
int* ptr_n = &n;
이라고 가정했을 때, 만약 이 ptr_n 값이 25000이 나왔다면 (물론0x16fdff2e8이런식으로 나온다는걸 알고있습니다만)
int* ptr_n2 = 25000;
이렇게 선언하면 ptr_n과 ptr_n2가 같은 값을 가리키게 되는건가요?
그렇다면
std::cout << *ptr_n << std::endl;
std::cout << *ptr_n2 << std::endl;
이게 서로 같은 값을 출력하는게 맞나요?
실제로 코딩해서 확인해봤는데 포인터값은 0x16fdff2e8이런식으로 long 타입이라 int*형식에 대입할 수가 없고
long으로 선언했을 경우엔 *ptr_n2 출력이 불가능해서 확인할 방법이 업내용 ㅠㅠ
해당 댓글은 삭제되었습니다.
그럼 어떻게 되는지 혹시 여쭤봐도 괜찮을까요?? 바쁘시다면 키워드만 말씀해주시면 제가 찾아보겠습니다
아하 그렇군요 감사합니다!!
포인터도 타입임 주소를 저장하는 타입 <- 일케 생각하면 이해 될꺼임 주소를 저장하는 타입인데 인티저를 할당하면 타입 에러
아하 그렇군요 제가 알고싶었던것은 만약에 가능하다면... 그러니까 ptr_n2 = 0x16fdff2e8; 이런식으로 할당이 가능하다면 *ptr_n2와 *ptr_n이 서로 같은 값을 출력하는지를 알고 싶었습니다 답변 감사합니다 ㅎㅎ
아 아닙니다 큰 도움이 되었습니다 감사합니다!! 같이 열심히 공부해봐요 ㅎㅎ