如何在c中打印浮点数的地址

时间:2015-10-03 13:43:31

标签: c

我想创建一个打印int,float和double的地址的程序。

int main()
{
    int a;
    float b;
    double c;
    printf("\na:%d \nb:%f \nc:%lf", &a, &b, &c);
}

但最后我得到的是int的地址。对于另外两个,答案是0.00000。

3 个答案:

答案 0 :(得分:2)

用于打印内存地址(指针)的正确格式说明符为%p。您也可以将参数转换为(void*),因为标准表明%p要求其参数属于void*类型。

使用错误的格式说明符会导致未定义的行为

答案 1 :(得分:2)

使用说明符%p打印地址。

printf("\na:%p \nb:%p \nc:%p",(void *)&a,(void *)&b,(void *)&c);

答案 2 :(得分:1)

使用%p打印void的地址。 printf似乎无法直接指向float

试试这个:printf("\na:%p \nb:%p \nc:%p", (void*)&a, (void*)&b, (void*)&c);