gpt4 book ai didi

c++ - 指针的大小是多少?

转载 作者:IT老高 更新时间:2023-10-28 13:58:09 24 4
gpt4 key购买 nike

指针的大小是否与它所指向的类型的大小相同,或者指针总是具有固定大小?比如……

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";

这个输出会是什么? sizeof(xPtr) 会返回 4 而 sizeof(yPtr) 会返回 1,还是 2 个指针实际上会返回相同的大小?

我问这个的原因是因为指针存储的是内存地址,而不是它们各自存储地址的值。

最佳答案

函数指针可以有非常不同的大小,在 x86 机器上从 4 到 20 个字节,具体取决于编译器。所以答案是 - 尺寸可能会有所不同。

另一个例子:以 8051程序。它具有三个内存范围,因此具有三种不同的指针大小,从 8 位、16 位、24 位,这取决于目标所在的位置,即使目标的大小始终相同(例如,char)。

关于c++ - 指针的大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6751749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com