我使用两种编译器来编译相同的代码:

#include<stdio.h>

int main(){
    printf("%c", '\0');
    return 0;
}


我将得到mingw和vs2017编译的不同结果。
在mingw中,我可以在控制台中留出空白。但是在vs2017中,我得到了一个字符'a',如下图。

c - 为什么mingw和vs 2017中的printf(“%c”,&#39;\0&#39;)现在有区别?-LMLPHP

这是vs2017中的错误还是我的vs2017版本太低?

最佳答案

这可能与您尝试打印'\0'字符有关。这可能会导致未定义的行为。您可以尝试仅打印普通字符,例如'A''t''.'等。

关于c - 为什么mingw和vs 2017中的printf(“%c”,'\0')现在有区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53075502/

10-12 19:18