第一章 词法陷阱

1.3 词法分析中的‘贪心法’

每个符号应该包含尽可能多的字符。需注意的是符号中间不能有空格。

a---b等同于表达式a -- - b

但是不同于a - -- b

y/*p;    /*被解释为一段注释的开始

正确有意义的写法应该是y=x/ *p或者y=x/(*p);

1.5 字符与字符串

用单引号引起的一个字符实际上代表一个整数。

用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制为零的字符‘\0‘初始化。

char *slash=‘/‘;  混用单双引号,编译错误。

练习1-4

a+++++b等同于((a++)++)+b

但是a++不能做为左值,所以没有意义,编译错误。

第一章 词法陷阱

时间: 2024-08-01 20:09:07

第一章 词法陷阱的相关文章

第一章 词法结构

1.1  字符集 1.1.1  js程序使用Unicode字符集编写的.Unicode是ASCII 和Latin-1的超集,并支持地球上几乎所有在用的语言. 1.1.2 JavaScript是区分大小写的语言,HTML不区分大小写,所以在html中标记和属性名可以大写也可以小写, 但是例如设置时间处理程序时onclick属性可以写成onClick,但在js中必须写成onClick 1.1.3 js会忽略程序中的表示 token 之间的空格,可以子啊代码中随意使用空格和换行,因此可以采用整齐一致的

第一章 词汇陷阱

1.3 词法分析'馋' 字符.需注意的是符号中间不能有空格. a---b等同于表达式a -- - b 可是不同于a - -- b y/*p;    /*被解释为一段凝视的開始 正确有意义的写法应该是y=x/ *p或者y=x/(*p); 1.5 字符与字符串 用单引號引起的一个字符实际上代表一个整数. 用双引號引起的字符串,代表的却是一个指向无名数组起始字符的指针.该数组被双引號之间的字符以及一个额外的二进制为零的字符'\0'初始化. char *slash='/';  混用单双引號.编译错误.

C陷阱与缺陷之词法陷阱

该文章及后续文章均为阅读<C陷阱和缺陷>后的读数笔记,方便以后回顾 C陷阱和缺陷电子版图书下载地址:点击打开链接 第一章词法陷阱 1.1 = 不同于 == 在C语言中,符号=作为赋值运算符,符号==作为比较运算符.一般而言,赋值运算相对比较运算出现得更频繁,因此字符数较少的符号=就被赋予更常用的含义--赋值操作.在编写程序的时候,注意不要将赋值操作写完比较相等的操作,也不要将比较操作写为赋值操作. 1.2 & 和 | 不同于 && 和 || 在C语言中,&和|为

C陷阱与缺陷 —— 读书笔记-1、词法“陷阱”

<C陷阱与缺陷>是由Andrew Koenig所著,高巍译.Andrew Koenig是AT&T大规模程序研发部(前贝尔实验室)成员,不仅有着多年的C++开发,研究和教学经验,而且还亲身参与了C++的演化和变革,对C++的变化和发展起到重要的影响. 第一章    词法陷阱 编译器中负责将程序分解为一个一个符号的部分,一般称为"语法分析器". 1.1    = 不同于 == while (c='' || c==' ' || c==' ') c=getc(f); 这个循

C缺陷与陷阱----读书笔记---第一章

第一章:词法陷阱 编译器中负责将程序分解为一个一个符号的部分,一般称为“词法分析器”.例如,对于语句: if ( x == big ) big = x ; 它的第一个符号是C语言关键字if,紧接着下一个符号是左括号,在下一个符号是标识符x,在下一个是大于号,在下一个是标识符big,以此类推.在C语言中,符号之间的空白(包括空格.制表符.换行符)将被忽略,因此上面的语句还可以写成: if ( x == big ) big = x ; 这里还需要强调一下“C语言忽略符号间空白”.第一:“符号”的意思

K&amp;R 学习笔记 第一章

今天开始学习C语言,为了之后的游戏开发学习做好基础,其实在大一的时候学校有C语言的课程,学的马马虎虎,教学也比较浅显,感觉并不能学习到C语言的精髓.在经过多人推荐下,入手了K&R ,看了第一章之后,才发现的确值得这么多人称赞. 其实大多数书的第一章都是差不多的,以Hello World 引出本书学习的知识体系的顺序,有趣的是之后的练习,也是要花一番功夫的. 1.4 提到了幻数,所谓幻数,就是在程序中直接使用的数字.C语言的传统方式是使用#define行来对付幻数.C语言预处理程序是一个强有力的工

《JS权威指南学习总结--第二章词法结构》

第二章词法结构 内容要点: 一.注释 1. //表示单行注释 2. /*这里是一段注释*/ 3.一般编辑器里加注释是:选中要加注释的语句,按 ctrl+/ 二.直接量 所谓直接量,就是程序中直接使用的数据量,比如: 数字.小数.字符串文本.布尔值.正则表达式直接量 三.标识符和保留字 标识符作用:标识符就是一个名字,在JS中,标识符用来对变量和函数进行命名,或者用做JS代码中某些循环语句中的跳转位置的标记. 标识符命名规则: 1.必须以字母.下划线(_)或美元符($)开始. 2.后续的字符可以是

【读书笔记】《编译原理》第一章 引论

第一章 引论 第一章 引论 1 语言处理器 2 一个编译器的结构 3 程序设计语言发展历程 5 编译技术的应用 1.1 语言处理器 编译器compiler:将源程序翻译成目标程序,生成目标代码快速,错误诊断效果差. 解释器interpreter:用户提供源程序和输入,产生输出,较慢,错误诊断效果好. java语言处理:Java源程序->字节码bytecode->虚拟机解释执行 语言处理系统:源程序--预处理器preprocessor--经过预处理的源程序--编译器--目标汇编程序(便于输出调试

操作系统思考 第一章 编译

第一章 编译 作者:Allen B. Downey 原文:Chapter 1 Compilation 译者:飞龙 协议:CC BY-NC-SA 4.0 1.1 编译语言和解释语言 人们通常把编程语言描述为编译语言或者解释语言.前者的意思是程序被翻译成机器语言,之后由硬件执行:而后者的意思是程序被软件解释器读取并执行.例如,C被认为是编译语言,而Python被认为是解释语言.但是二者之间的界限并不总是那么明显. 首先,许多语言既可以编译执行也可以解释执行.例如,存在C的解释器,和Python的编译