我已经编写了这个简单的代码,因此我可以看到我编写的更复杂程序的错误。
#include<stdio.h>
int main()
{
int n = 0, i = 1, a = 0;
scanf("%d", &n);
while (i <= n)
{
scanf(" %d", &a);
printf("%d", &a);
i++;
}
}
但是当我运行程序时它会像这样: 4 1 6487620 它有什么问题?
答案 0 :(得分:1)
在您的代码中
printf("%d", &a);
应该是
printf("%d", a); // don;t print address....
FWIW,将地址(指针类型)作为参数传递给%d
是不匹配的,并调用undefined behavior。
答案 1 :(得分:1)
使用时
printf("%d", &a);
这意味着它会打印a
并打印您必须怀疑的a
的值
printf("%d", a);
并在进行更改后编译程序并尝试重新运行:)
答案 2 :(得分:0)
您将a
的地址而不是其值传递给printf
。您还应输出换行符以分隔数字:
printf("%d\n", a);