2013-02-01 54 views
0

我對C編碼非常陌生。剛開始學習了大約一個月。一切都很順利,但突然DEV C++開始奇怪地行事。問題是現在它不顯示變量值。這意味着我寫了一個C代碼,編譯它,並在運行程序後,我看到我放在代碼中顯示不正確。前幾天還好,但現在我不知道它是如何或者是什麼原因導致它被徹底搞砸了。printf的神祕行爲

下面是一個問題的例子。一個非常簡單的基本C代碼。但最終的結果是搞砸了。

#include <stdio.h> 

main() 
{ 
    char a = 'J'; 
    int x = 15; 
    float y = 9.75; 

    printf("%c\n%d\n%f", &a,&x,&y); 

    getch(); 
} 

Output: shows something like a triangle 
    2293528 
    0.000000 

任何人都可以告訴我什麼是問題,以及如何解決它? 我很絕望。 Dev C++是我能理解的唯一IDE。我已經下載了一些其他人,但無法弄清楚。

計劃:奧威爾開發-C++ 版本:5.3.0.4

編譯:MinGW的GCC 4.7.0的32位(包括在開發 - C++)

+1

*** *** INT的main(),請... – 2013-02-01 22:48:12

+0

此外,你爲什麼傳遞指針到printf的窮人呢?你讀過它的文檔嗎? (提示:不,你沒有...) – 2013-02-01 22:49:04

+1

是我的錯。我對這個可憐的夥伴關注較少[實際上把它和scanf混合在一起] @碳酸;) – Seeker

回答

7

你硬塞給這些變量的地址到printf()已被告知期望值。這是未定義的行爲。

只要做到:

printf("%c\n%d\n%f", a,x,y);