我经历了指针运算,并且无法将一种数据类型的指针分配给另一种数据类型。例如,下面的声明是不正确的。
double x = 10;
int *ptrInt = &x;
我们已经将double变量的地址赋给了“指向整数的指针”。与整数相比,Double占用8个字节,占用4个字节,因此整数指针将截断那些额外的4个字节。
但是,为什么任何指针变量的大小都是8个字节,这也意味着它不会截断那些额外的4个字节并且应该正常工作(即使它没有)。
我有这个疑问。有人可以帮我澄清一下吗?
怎么来,任何指针变量的大小是8个字节?指针变量包含地址和地址大小是8 byte
系统上的64-bit
,无论指针变量是指向int
还是char
或float
对象,因为64-bit
指针支持8 byte
地址空间。