%n在这个问题上,我正在阅读C中的格式说明符.但是当我在不同的C++编译器上尝试以下程序时,它给了我不同的输出.
为什么?是什么原因?是否存在未定义或实现定义的行为?
#include<stdio.h>
int main()
{
int c = -1;
printf("geeks for %ngeeks ", &c);
printf("%d", c);
getchar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
geeks for geeks 10
Run Code Online (Sandbox Code Playgroud)
geeks for geeks 10
Run Code Online (Sandbox Code Playgroud)
geeks -1
Run Code Online (Sandbox Code Playgroud)
Debug assertion failed ("'n' format specifier disabled",0)
Run Code Online (Sandbox Code Playgroud)