int main()
{
printf("Hello World!");
printf("%s");//printing Hello World again why?
}
此代码打印“Hello World!”两次。为什么会这样发生?
答案 0 :(得分:3)
printf("%s")
导致未定义的行为。
一旦你的程序中有了这一行,整个程序就变得不明确,可以做或不做任何事。
最有可能的是,通过完全运气,您的堆栈仍然包含指向前一次调用的文字字符串的指针,因此该函数仍然能够正确执行。