printf的神秘行为

时间:2013-02-01 22:38:06

标签: c

我对C编码非常陌生。刚开始学习大约一个月。一切都很顺利但突然之间DEV C ++开始表现得很奇怪。问题是现在它没有显示变量值。这意味着我编写了一个C代码,编译它并在运行程序后,我看到我在代码中放置的内容没有正确显示。几天前没关系,但现在我不知道怎么或者是什么原因让它完全搞砸了。

这是问题的一个例子。一个非常简单的基本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。我已经下载了其他几个但无法解决的问题。

程序:Orwell Dev-C ++ 版本:5.3.0.4

编译器:MinGW GCC 4.7.0 32位(包含在Dev-C ++中)

1 个答案:

答案 0 :(得分:7)

您正在将这些变量的地址提供给printf(),而printf("%c\n%d\n%f", a,x,y); 已被告知期望值。这是未定义的行为。

只是做:

{{1}}