[英]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.