1.词法陷阱
- =不同于==
- ==和=误写导致程序运行出现问题
- &和|不同于&&和Ⅱ
- 贪心法、大嘴法
- 每一个符号应该包含尽可能多的字符
- 从左到右—个学符—个字符地读入,如果该字符可能组成—个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;如果可能继续读入下—个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成个有意义的符号。
- 如果编译器的输入流截止到某个字符都已经被分解为—个个符号,那么下—个符号将包从该字符之后可能组成一个符号的最长字符串。
- 注意:除了字符串和字符常量,符号的中间不能嵌有空白(空格符、制表符、换行符)
整型常量
8进制问题
字符和字符串
有单引号引起的一个字符实际上表示个整数。整数值对应与该字符在编译器采用的字符集中的序列值。
- 单引号和双引号涵义迥异但是编译系统并不会检测报错
- 由双引号引起的亨符串,代表的却是—个指向无名数组起始字符的指针,该数组被双引号之间的字符以及—个额外的二进制为零的字符\0’初始化。
- 整型数(32bit)—般可以容纳多个字符,因此有的C编译器允许一个字符常量(字符串常量)中包括多个字符。
- 被//包惠起来的""为注释的—部分,被”“包裹起来的//属于字符串的一部分
- 推荐一个零声学院免费教程,个人觉得老师讲得不错, 服务器课程