簡體   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