printf(“\%d”,& t)之间有什么区别;和printf(“%d”,t);

时间:2016-11-26 08:58:41

标签: c io printf

我在Dev C ++和Visual C ++中尝试了一些C代码。

例如:

int t =6;
printf("\nt = %d ",&t);

输出结果为:

t = 2358848

为什么会这样?我怎样才能得到t的值?

3 个答案:

答案 0 :(得分:3)

&t为您提供address of t,而非其价值。

要打印值,请执行以下操作:

printf("\nt = %d ", t);

答案 1 :(得分:2)

&被称为一元,它给你一个变量的地址。这会让人感到困惑,因为当你使用scanf时,它需要一个地址来存储用户输入,所以它让你使用一元。但是在打印时,它希望值显示在屏幕上,它不关心它的地址是什么。

示例:

int t = 0;
scanf("%d", &t); // This saves what the user inputs to the memory location of t
printf("\n %d", t); // This prints the value the user input

或者,如果您确实想查看地址是什么:

printf("\n %p", &t); // This displays a memory location properly formatted.

答案 2 :(得分:1)

试试这个:printf("\nt = %d ", t);

您正在尝试打印t变量的地址。