繁体   English   中英

为什么这个程序不给我我想要的输出?

[英]why won't this program give me the output i want?

我已经写了这个简单的代码,所以我可以看到我编写的一个更复杂的程序出了什么问题。

#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它怎么了?

在你的代码中

 printf("%d", &a);

应该

printf("%d", a); // don;t print address....

FWIW将地址(指针类型)作为参数传递给%d是不匹配的,并调用未定义的行为

当您使用printf("%d", &a);

这意味着它会打印的地址a

并打印的价值a你必须赖特

printf("%d", a);

并进行更改后,编译程序并尝试重新运行:)

您传递的地址a ,而不是其价值printf 您还应该输出换行符以分隔数字:

printf("%d\n", a);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM