我参加的一次考试中有一道题。问题是:
以下代码的输出将是什么:
#include<stdio.h>
#include<conio.h>
void main()
{
int a=5, b=6, c=7;
printf("%d%d%d");
}
我的回答是:它会给出一个警告,因为printf没有提供所需的参数。
如果你要运行它,你会得到无用的值。
老师给了我零分。根据他的说法,答案是这些值将以相反的顺序打印,即输出将是"765“。
问题是他使用的是Turbo C++编译器,而我通常使用的是GCC。我可以有一些评论和解释来找回我的分数吗?还是我的答案真的错了?
发布于 2012-10-30 14:51:45
printf
中的参数不匹配且未提供参数(如此问题所示)是
undefined behaviour
它可能会得到garbage
,也可能会得到那些值a,b,c
。它不是由语言标准定义的。
https://stackoverflow.com/questions/13133979
复制相似问题