我现在正在学习C编程(我对它很陌生),我也在尝试各种各样的东西来理解事情的工作方式。所以,我很清楚下面的代码是不正确的代码;但我还是尝试了一下,了解它将如何编译:在C编程中,%d是否随机生成数字?
#include <stdio.h>
#include <stdlib.h>
int {
printf("I think C will give me %d %d %d %d %d.", 20);
return 0;
}
而且我在命令行中得到这个:
I think C will give me 20 8 108 108 2. Process returned 0 (0x0) execution time : 0.234 s Press any key to continue.
如果从号码8,108,108和2 ?他们是如何产生的?
我只是想了解它是如何工作的。谢谢。
这是未定义的行为,这就是为什么。 –
您只为五个'%d'格式说明符中的第一个提供了参数,所以行为未定义。 –
行为未定义。没有人知道这些数字是如何“生成”的,因为在实践中它将取决于许多特定实施情况。换句话说,可以想出一个“真实生活”的答案,但它高度依赖于你的设置。我们从这里看不到它。 – AnT