在下面的代码片段中,“ \”的行为如何?
printf("hii\"); // This line gives error : missing terminating " character
printf("hii\ n"); // This line prints hii n
我无法在此处了解此转义序列的行为,请解释。
答案 0 :(得分:2)
escape sequence不是单个\
字符;是后面跟着另一个字符。例如,\"
和\n
都是转义序列。在某些情况下,您可以在反斜杠后面看到多个字符,就像相同的转义代码一样。这与字符在内部的表示方式(ASCII或Unicode值)有关,目前可以安全地忽略。
转义序列用于编写不方便/不可能直接输入代码的字符。例如,\"
是引号的转义序列。这就像在字符串中加上引号一样,否则您将无法执行此操作,因为它会关闭字符串文字。查看您问题的语法高亮部分,以了解我的意思;第一行的大部分被视为字符串的一部分,因为您永远不会有未转义的结束引号。
最常见的转义序列可能是\n
。与\"
不同的是,它不仅会在字符串中产生文字n
;你可以做到这一点而没有逃脱。而是生成换行符。代码
printf("hii\nthere");
打印
hii
there
到屏幕上。
问题的第二行代码使用转义序列\
(反斜杠空间)。这不是标准的转义序列;如果您使用警告进行编译,则您的编译器可能会报告它正在忽略它或其他内容。
(如果您想在屏幕上实际打印反斜杠,则需要使用\\
来转义反斜杠)