当我告诉printf打印变量时会发生什么?

时间:2015-11-15 15:08:28

标签: c printf

当我运行以下代码(在Eclipse上)时,我收到一条弹出消息,指出.exe已停止工作:

    #include <stdio.h>

    main ()
    {
       int x;
       x = 1;

       printf(x);
    }

我知道我应该按如下方式对其进行编码以使其运行:

printf("%d", x);

然而,我的问题仅仅是在那里&#34;在那里&#34;当我以前一种方式编码时。

2 个答案:

答案 0 :(得分:2)

printf()第一个参数是一个字符串。

在C中,值“1”被压入堆栈以调用printf。 printf期待一个字符串,所以它开始将1视为一个地址。

这会导致“停止工作” - 当它试图查看地址1处的字符时。

答案 1 :(得分:2)

您的代码告诉printf在内存地址1打印字符串。

你可能无法访问它,所以它会崩溃。

相关问题