K和R练习1-24

时间:2013-02-13 16:58:48

标签: c escaping kernighan-and-ritchie kr-c

我正在使用Kernighan和Ritchie的C编程语言编写程序。

我目前正在练习1-24,说:

  

编写程序以检查C程序是否存在基本语法错误   像不平衡的括号,括号和括号。别忘了   引号,包括单引号和双引号,escape sequences和注释。

我做得很好......但我不知道escape sequences会如何影响这些括号,括号和括号?

他们为什么要警告转义序列?

3 个答案:

答案 0 :(得分:4)

"\""中,有三个双引号字符,但它仍然是一个有效的字符串文字。中间"被转义,意味着外部两个相互平衡。同样,'\''是有效的字符文字。

括号,括号和大括号不受影响,除非它们出现在由于报价转义而无法正确解析的字符串文字中。

答案 1 :(得分:3)

我猜他们的意思是你需要区分"(开始或结束字符串)和\"(可能是字符串内的"字符)

如果你要避免举报,这很重要strlen("\")");有不平衡的括号。

答案 2 :(得分:2)

显而易见的可能性是字符串中的转义引用。如果你不考虑转义,你可能会认为字符串在那里结束。例如:"\")\"")是字符串文字的一部分,因此不会将其视为不匹配的括号。