“printf”只打印变量地址

时间:2013-11-13 16:48:57

标签: c printf

所以这是我的代码:

#include <stdio.h>
main(){
int hi;
hi = 3;
printf("%d",&hi);
}

,输出为:“2686748”

在Windows 7上使用“代码块”

任何想法都错了吗?

5 个答案:

答案 0 :(得分:4)

&amp; 是C中运算符的地址。因此,如果您说&amp; hi,它将打印变量hi的地址。要在变量内打印值,请删除&amp;在您使用的行中。

printf("%d",hi);

答案 1 :(得分:2)

它正在打印一个地址,因为您告诉编译器使用地址运算符 &

如果您想打印该值,只需撰写hi而不是&hi

答案 2 :(得分:1)

"%d"告诉printf你输入一个整数。您提供的整数是&hi,它是hi的地址。如果您希望hi的值只使用

答案 3 :(得分:1)

&运算符为您提供变量的地址

printf("%d", &hi);

打印地址和

printf("%d", hi);

打印值。

答案 4 :(得分:0)

如果您打算打印hi的值,只需将其传递给printf,而不是其地址:

printf("%d", hi);

您可能会将printfscanf混淆,后者要求其所有参数都是指针。