【发布时间】:2016-04-20 08:31:18
【问题描述】:
在以下代码中:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float *a;
printf("%x\n",&a);
a = malloc(100*sizeof(float));
printf("%x\n",a);
*a=5;
printf("%x\n",*a);
}
我希望在最终输出中看到“5”,但我看到的只是零。如何修改这些内存空间?
【问题讨论】:
-
为什么要使用无符号十六进制整数说明符来打印
float? -
%x是一个指针,%f是一个浮点数。man printf -
天哪 :) 出于某种原因,我认为我可以使用 %x 打印所有内容
-
... 并且指针值应该使用
%p而不是%x打印。阅读printf。 -
@Boiethios: "%x is a pointer" 不,
x转换说明符用于无符号整数。
标签: c pointers floating-point printf