在下面的代码片段中,“\”的行为如何?
printf("hii\"); // This line gives error : missing terminating " character
printf("hii\ n"); // This line prints hii n
我无法了解此转义序列在这里的行为方式,请解释一下。
最佳答案
安escape sequence不是单个 \
字符;就是后面跟着另一个角色。例如,\"
是一个转义序列,\n
也是如此。在某些情况下,您可以看到反斜杠后面的多个字符全部作为相同的转义代码;这与字符在内部的表示方式(ASCII 或 Unicode 值)有关,目前可以安全地忽略。
转义序列用于写入不方便/不可能直接放入代码中的字符。例如,\"
是引号的转义序列。这就像在字符串中放入引号,否则您无法这样做,因为它会关闭字符串文字。看看您的问题的语法突出显示以了解我的意思;第一行的大部分内容被视为字符串的一部分,因为您永远不会有未转义的结束引号。
最常见的转义序列可能是\n
。与 \"
不同,它不仅仅在字符串中生成文字 n
;您无需转义即可做到这一点。相反,它会生成换行符。代码
printf("hii\nthere");
打印
hii
there
到屏幕。
问题中的第二行代码使用转义序列 \
(反斜杠空格)。这不是标准的转义序列;如果您在编译时带有警告,您的编译器可能会报告它忽略了它或其他内容。
(如果您想实际在屏幕上打印反斜杠,则需要使用 \\
对反斜杠进行转义)
关于c - 转义序列 '\' 有什么用处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51353472/