程序设计错误实际上反映的是程序与程序员对该程序的“心智模式”两者的相异之处。
符号就是程序中的一个基本信息单元。
将程序分解成符号的过程,称为“词法分析”。
编译器中负责将程序分解为一个一个符号的部分,一般称为“词法分析器”。
编译器将程序分解为符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;如果可能继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号。这个处理策略有时被称为“贪心法”。
除了字符串与字符常量,符号的中间不能嵌有空白(空格符、制表符和换行符)。下面的表达式
a --- b
与表达式
a -- - b
的含义相同,而与
a - -- b
的含义不同。
如果一个整型常量的第一个字符是数字0,那么该常量将被视作八进制数。
由单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。
用双引号引起的字符串,代表的是一个指向无名数组起始字符的指针,该指针被双引号之间的字符以及一个额外的二进制值为零的字符'\0'初始化。
·练习1-4. a+++++b的含义是什么?
答案在下期
阅读更多,关注微信公众号:机器语言杂谈