我从 printf("%d") 得到的输出是什么意思?
What does the output which I get from printf("%d") mean?
我今天试了一段代码,发现 printf("%d") 仍然有输出。
在我的电脑上,我得到“1487504216”的输出。
我想知道为什么会得到输出以及输出的含义。
以下是我试过的代码。
#include <stdio.h>
int main()
{
printf("%d");
return 0;
}
printf
returns 打印的字符数。在您的情况下,您会得到一个奇怪的数字,因为您的格式无效。 printf("%d", 74)
会 return 2 因为它打印 2 个字符。
printf("%d",...
期望下一个参数是要打印的数字。你没有给它传递参数,所以它只会从堆栈中获取下一个数据,并认为它是要打印的变量。所以你读取了一些垃圾数据并打印出来...
正式这称为 "undefined behavior" 我的解释对于某些编译器和平台可能是正确的,但其他编译器和平台可能会拦截堆栈中的无效读取并中止您的程序,或者可能发生其他任何事情:行为是 undefined.
我今天试了一段代码,发现 printf("%d") 仍然有输出。 在我的电脑上,我得到“1487504216”的输出。 我想知道为什么会得到输出以及输出的含义。 以下是我试过的代码。
#include <stdio.h>
int main()
{
printf("%d");
return 0;
}
printf
returns 打印的字符数。在您的情况下,您会得到一个奇怪的数字,因为您的格式无效。 printf("%d", 74)
会 return 2 因为它打印 2 个字符。
printf("%d",...
期望下一个参数是要打印的数字。你没有给它传递参数,所以它只会从堆栈中获取下一个数据,并认为它是要打印的变量。所以你读取了一些垃圾数据并打印出来...
正式这称为 "undefined behavior" 我的解释对于某些编译器和平台可能是正确的,但其他编译器和平台可能会拦截堆栈中的无效读取并中止您的程序,或者可能发生其他任何事情:行为是 undefined.