如何在64位计算机上将每个指针变量的大小设置为8个字节?

问题描述 投票:-3回答:1

我经历了指针运算,并且无法将一种数据类型的指针分配给另一种数据类型。例如,下面的声明是不正确的。

  double x = 10;
  int *ptrInt = &x;

我们已经将double变量的地址赋给了“指向整数的指针”。与整数相比,Double占用8个字节,占用4个字节,因此整数指针将截断那些额外的4个字节。

但是,为什么任何指针变量的大小都是8个字节,这也意味着它不会截断那些额外的4个字节并且应该正常工作(即使它没有)。

我有这个疑问。有人可以帮我澄清一下吗?

c pointers
1个回答
3
投票

怎么来,任何指针变量的大小是8个字节?指针变量包含地址和地址大小是8 byte系统上的64-bit,无论指针变量是指向int还是charfloat对象,因为64-bit指针支持8 byte地址空间。

© www.soinside.com 2019 - 2024. All rights reserved.