我了解了指针算术以及不能将一种数据类型的指针分配给另一种数据类型的事实。例如,下面的声明是不正确的。
double x = 10;
int *ptrInt = &x;
我们已将 double 变量的地址分配给“指向整数的指针”。与整数相比, double 需要 8 个字节,整数需要 4 个字节,因此整数指针将截断这额外的 4 个字节。
但是为什么,任何指针变量的大小都是 8 个字节,这也意味着它不会截断那些额外的 4 个字节并且应该正常工作(即使它没有)。
我有这个疑问。谁能帮我澄清一下吗?
最佳答案
为什么任何指针变量的大小都是 8 字节?指针变量包含地址且地址大小在 64 位
上为 8 字节
code> 系统,无论指针变量是否指向 int
、char
或 float
对象(作为 64 位
指针支持) 8 字节
地址空间。
关于c - 在 64 位机器上每个指针变量的大小为 8 个字节如何合理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52341852/