我正在使用Kernighan和Ritchie的C编程语言编写程序。
我目前正在练习1-24,说:
编写程序以检查C程序是否存在基本语法错误 像不平衡的括号,括号和括号。别忘了 引号,包括单引号和双引号,
escape sequences
和注释。
我做得很好......但我不知道escape sequences
会如何影响这些括号,括号和括号?
他们为什么要警告转义序列?
答案 0 :(得分:4)
在"\""
中,有三个双引号字符,但它仍然是一个有效的字符串文字。中间"
被转义,意味着外部两个相互平衡。同样,'\''
是有效的字符文字。
括号,括号和大括号不受影响,除非它们出现在由于报价转义而无法正确解析的字符串文字中。
答案 1 :(得分:3)
我猜他们的意思是你需要区分"
(开始或结束字符串)和\"
(可能是字符串内的"
字符)
如果你要避免举报,这很重要strlen("\")");
有不平衡的括号。
答案 2 :(得分:2)
显而易见的可能性是字符串中的转义引用。如果你不考虑转义,你可能会认为字符串在那里结束。例如:"\")\""
。 )
是字符串文字的一部分,因此不会将其视为不匹配的括号。