C ++의 변수는 암시 적으로 포인터입니다.
Oct 16 2020
이것을 알아내는 데 어려움을 겪고 있습니다. C ++로 입력 할 때
int a = 4;
메모리 관리자는 값 4를 유지하기 위해 4 바이트를 할당하고 해당 값을 특정 주소에 유지합니다. "a"변수는 이름 일 뿐이라는 사실을 제공합니다.
- 변수 "a"는 어디에 저장됩니까?
- 4가 그 자체로 임시 객체이고 "a"가 참조 나 포인터를 바인딩한다는 것을 알고 있기 때문에 메모리 어딘가에 저장하고 메모리 주소 4를 가리 킵니다.
답변
2 eerorika Oct 15 2020 at 23:47
C ++의 변수는 암시 적으로 포인터입니다.
아니요. 변수는 암시 적으로 포인터가 아닙니다.
변수 "a"는 어디에 저장됩니까?
메모리의 어딘가 (또는 아무데도 ). 변수에 대한 메모리 할당은 언어 구현의 책임입니다.
메모리 어딘가에 저장합니까
예 (또는 아무데도).
4의 메모리 주소를 가리 킵니다.
아니오. 추상 기계에는 그러한 포인터가 없습니다.
그래서 "a"는 객체 "4"에 대해 어떻게 알 수 있습니까?
4는 개체가 아닙니다. 4는 리터럴 또는 컨텍스트 / 관점에 따른 값입니다.
a아무것도 아는 것이 아닙니다. 컴파일러 에 의해 명명 된 객체는 것을 알고 a값 4를 가지고있다.
3 RSahu Oct 15 2020 at 23:43
- 변수 "a"는 어디에 저장됩니까?
내 경험상 "a"는 런타임에 저장되지 않습니다. 표준은 저장을 요구하지 않습니다. 컴파일, 링크 및 디버깅에 사용되는 이름입니다. 컴파일러, 링커 및 디버거에 필요한 데이터는 플랫폼별로 다릅니다. 표준은 해당 데이터의 특성을 지시하지 않습니다.
따라서 두 번째 질문은 무시할 수 있습니다.