포인터 주소값관련해서 질문드려요
에드가
2023.04.01
질문 요약 :포인터가 가르키는 주소값은 실행마다 바뀌는건지 궁금합니다???질문 내용 :
예를들어 a의 주소값을 가르키는 포인터 *pA가 있습니다.
int *pA=&a라고 선언해주고
printf(%d , *pA);
출력해보면 주소값이 나오는데
실행시마다 주소값이 바뀝니다실행마다 바뀌어서 초기값 잘못줘서 쓰레기값인줄로 착각한적도 있었네요..ㅎㅎ
그렇다면 이 결과는 실행시마다 저장되는 위치가 바뀐다고 봐도 무방한건가요??
그렇게되면 저장되는 메모리 위치가 계속 바뀌니 비효율적?? 안좋은게 아닌가요??도와주세요~~
-
다연
아아 제가 실수로 printf문에 *pA라 적었네요.. 질문을 pA로 정정하겠습니다ㅎㅎ
-
꽃바라기슬아
printf(\%d\ , *pA); //이 부분은 주소값이 출력되는게 아닙니다.
a 에 저장된 값이 출력됩니다.
printf(\%p , pA); //주소값 출력합니다. 저장되는 위치는 실행시마다 달라집니다.