“printf”只打印变量地址

所以这是我的代码:

#include  main(){ int hi; hi = 3; printf("%d",&hi); } 

输出是:“2686748”

我在Windows 7上使用“代码块”

任何想法都错了?

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

 printf("%d",hi); 

它正在打印一个地址,因为你通过使用地址运算符 &告诉编译器这样做了。

如果你想打印这个值,只需写下hi而不是&hi

"%d"告诉printf你输入一个整数。 你给它的整数是&hi ,这是&hi的地址。 如果你想要hi的值就可以使用它

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

 printf("%d", &hi); 

打印地址和

 printf("%d", hi); 

打印值。

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

 printf("%d", hi); 

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