int * a = 3; 据我所知,指针仅接受地址。但是这里的指针接受一个常量。这里有任何隐式转换吗?
答案 0 :(得分:2)
是的,存在从int
(3)到int*
的隐式转换(没有“隐式强制转换”;“ cast”是显式转换)。
您将在内存地址0x03上形成指向int
的指针,该指针可能不存在,因此请不要这样做。
该功能在某些低级设置中很有用,例如在嵌入式环境下对某些硬件寄存器进行内存映射时。您可以从硬件手册/文档中获取地址,然后将其写入代码中。
但是,通常,如果编译器没有警告您远离此类滑稽动作,请提出警告。