首页 > 解决方案 > 转义序列“\”的用途是什么?

问题描述

在下面的代码片段中,'\' 的行为如何?

printf("hii\"); // This line gives error :  missing terminating " character

printf("hii\  n"); // This line prints hii n 

我无法理解这个转义序列在这里的表现,请解释一下。

标签: c

解决方案


转义序列不是单个\字符。它后面跟着另一个字符。例如,\"是一个转义序列,如\n. 在某些情况下,您可以看到反斜杠后面的多个字符都作为相同的转义码;这与字符在内部的表示方式(ASCII 或 Unicode 值)有关,现在可以安全地忽略。

转义序列用于编写不方便/不可能直接放入代码的字符。例如,\"是引号的转义序列。这就像在字符串中放一个引号,否则你不能这样做,因为它会关闭字符串文字。查看问题的语法突出显示以了解我的意思;第一行的大部分内容都被视为字符串的一部分,因为您永远不会有未转义的右引号。

最常见的转义序列可能是\n. 与 with 不同\",它不只是n在字符串中产生文字;你可以在没有逃脱的情况下做到这一点。相反,它会产生一个换行符。编码

printf("hii\nthere");

印刷

hii
there

到屏幕。

您问题中的第二行代码使用转义序列\(反斜杠空格)。这不是标准的转义序列;如果您在编译时出现警告,您的编译器可能会报告它正在忽略它或其他东西。

(如果你想在屏幕上实际打印一个反斜杠,你需要转义一个反斜杠,使用\\


推荐阅读