关于 C 编程语言,转义序列的描述无法解析 Visual Studio 2008 中以下行的输出。
char * str = "??/abc";
printf( "%s", str );
它只打印“bc”。
检查 str 指向的内存,我们可以发现它"??/a"
的工作原理是"\a"
在谷歌上搜索我们找不到任何与"??/"
被视为反斜杠相关的内容。
关于 C 编程语言,转义序列的描述无法解析 Visual Studio 2008 中以下行的输出。
char * str = "??/abc";
printf( "%s", str );
它只打印“bc”。
检查 str 指向的内存,我们可以发现它"??/a"
的工作原理是"\a"
在谷歌上搜索我们找不到任何与"??/"
被视为反斜杠相关的内容。
为了扩展 AProgrammer 的评论,C 为键盘缺少某些字符的人定义了一组三元组。这些以“??”开头,后跟另一个字符。特别是,'??/' 是 '\' 的三元组。
这种翻译是在编译过程的早期完成的,所以编译器只看到'\a'。
见MSDN