我试过寻找这个,但没有运气。我看了一下指针和使用他们,我知道,指针非类类型仅与同一指针类型兼容,就像有没有关于指针兼容类型的任何文档?
int* apointer = anotherintpointer;
,但是这是不可能的(没有任何明确的转换)
int* apointer = aFLOATpointer;
我的确看到了不允许这一点的观点,但并不完全。就像整数与浮点数兼容,比如int x = afloatvariable;
,为什么指向int的指针不能和指向float的指针兼容?
我的主要问题是:有,我可以了解为什么这些指针只能使用相同指针类型,实际上指出,这是真实的地方兼容的任何地方,因为它仅仅是从一个假设我经验。如果您可以在标准中了解这方面的内容,请给我一个提示在哪里阅读,因为我在快速浏览时找不到它。所以如果有人能够给我提供一个链接或者什么的话,那真的不仅仅是真棒。
编辑:根据意见,我可以看到我使用这个词兼容的也许是有点过。我的意思兼容是一种允许被分配在内存中的另一个:)
您需要详细了解C++中低级类型的基本属性。 'float'和'int'类型非常不同,你不能在没有转换的情况下交换它们。 – tadman
Float和int在内存中的工作方式不同。所以,如果你的int指针指向一个float,并且试图像整数一样使用它。它会阻止浮动。指向int的浮点指针同样适用 – litelite
'整数与浮点兼容'兼容的意思是什么?它们有一个_completely_不同的位表示形式,所以将float位解释为int不会给你任何有用的东西。 – tkausl