在C中,为什么这两段代码会提供相同的输出?
#include<stdio.h>
int main(void)
{
const char c='\?';
printf("%c",c);
}
Run Code Online (Sandbox Code Playgroud)
和
#include<stdio.h>
int main(void)
{
const char c='?';
printf("%c",c);
}
Run Code Online (Sandbox Code Playgroud)
我知道当我们使用printf()时,反斜杠用于为编译器生成引号("或')和反斜杠,但为什么这对'?'有效?
Bat*_*eba 86
\?是一个完全等价的转义序列?,用于转义三字符:
#include <stdio.h>
int main(void) {
printf("%s %s", "??=", "?\?="); // output is # ??=
}
Run Code Online (Sandbox Code Playgroud)