>백엔드 개발 >C++ >C 포인터 크기는 고정인가요 아니면 가변인가요? 그리고 함수 포인터는 어떻게 다릅니까?

C 포인터 크기는 고정인가요 아니면 가변인가요? 그리고 함수 포인터는 어떻게 다릅니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-14 09:59:15439검색

Are C   Pointer Sizes Fixed or Variable, and How Do Function Pointers Differ?

포인터 크기: 고정 또는 가변?

C에서 포인터의 크기는 고정되어 있으며 이는 기본 아키텍처에 따라 다릅니다. 일반적으로 32비트 시스템에서 포인터는 32비트 메모리를 차지하는 반면, 64비트 시스템에서는 64비트를 차지합니다. 이 고정된 크기는 다음 코드 조각에서 분명하게 나타납니다.

int x = 10;
int *xPtr = &x;
char y = 'a';
char *yPtr = &y;

std::cout << sizeof(x) << "\n";
std::cout << sizeof(xPtr) << "\n";
std::cout << sizeof(y) << "\n";
std::cout << sizeof(yPtr) << "\n";

출력:

4
4
1
4

관찰할 수 있듯이 xPtr 및 yPtr의 크기는 유형에 관계없이 둘 다 4입니다. 그들은 지적합니다. 이는 포인터가 아키텍처에 따라 고정된 크기를 갖는 메모리 주소를 저장하기 때문입니다.

그러나 함수 포인터는 다르게 동작한다는 점에 유의하는 것이 중요합니다. 함수 프로토타입에 대한 추가 정보를 포함하므로 일반적으로 표준 포인터보다 더 많은 공간을 차지합니다.

위 내용은 C 포인터 크기는 고정인가요 아니면 가변인가요? 그리고 함수 포인터는 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.