将常量分配给指针变量后,真正发生了什么?

时间:2019-06-23 14:52:20

标签: c

int * a = 3; 据我所知,指针仅接受地址。但是这里的指针接受一个常量。这里有任何隐式转换吗?

1 个答案:

答案 0 :(得分:2)

是的,存在从int(3)到int*的隐式转换(没有“隐式强制转换”;“ cast”是显式转换)。

您将在内存地址0x03上形成指向int的指针,该指针可能不存在,因此请不要这样做。

该功能在某些低级设置中很有用,例如在嵌入式环境下对某些硬件寄存器进行内存映射时。您可以从硬件手册/文档中获取地址,然后将其写入代码中。

但是,通常,如果编译器没有警告您远离此类滑稽动作,请提出警告。