格式修饰符和百分比符号问题

时间:2017-05-08 19:11:11

标签: c

  1. 第一个问题

    #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

  2. 第二个问题

    #include <stdio.h>
    
    int main(void)
    {
        int k = 5;
        printf("%*%\n",k);
        return 0;
    }
    

    我期待看到k-1空格后跟一个%符号。可悲的是,我看到%并且根本没有前导空格。我无视什么?

0 个答案:

没有答案