第一个问题
#include <stdio.h>
int main(void)
{
int k;
printf("hello\n%n", &k);
printf("k: %d", k);
return 0;
}
上面的代码在Linux终端中运行良好,产生k: 6
。当我使用Code :: Blocks在Windows上执行该代码时,k
返回一个看起来像内存地址的值。使用Windows 10的示例输出:
hello\n
k: 4123991
我查找了Code :: Blocks 16.01 setting-&gt;编译器然后在&#39;编译器标志&#39;选项卡我找不到任何有用的复选框按钮来解决我描述的问题。
我做错了什么?当我使用Windows和Code :: Blocks(build-&gt; build and run,F9按钮)执行该代码时,我希望看到k=6
而不是k=4123991
。
第二个问题
#include <stdio.h>
int main(void)
{
int k = 5;
printf("%*%\n",k);
return 0;
}
我期待看到k-1空格后跟一个%
符号。可悲的是,我看到%
并且根本没有前导空格。我无视什么?