随笔分类 -  C陷阱与缺陷_读书笔记

摘要:要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成声明、表达式、语句和程序的。 我们先来看看下面的一个语句:( *( void(*)())0)(); 这是当计算机启动时,硬件将调用首地址为0位置的子例程。像这样的表达式恐怕会令每个C/C++程序员的内心都“不寒而栗”吧。 然而,完全不用害怕,任何C变量的声明都是由两部分组成:类型以及一组类似表达式的声明符。最简单的声明变量,如:float f , g ; 这个声明的含义是:当对其求值时,表达式f和g的类型为浮点型。 同样的逻辑也适用于函数和指针类型的声明,例如:float ff(); 这个声明的含义是:表. 阅读全文
posted @ 2011-11-21 22:03 it笨笨 阅读(25936) 评论(9) 推荐(4) 编辑
摘要:术语“符号”指的是程序的一个基本组成单元,其作用相当于一个句子中的单词。在程序中,符号就是程序的一个基本信息单元。而组成符号的字符序列就不同,同一组字符序列在某个上下文环境中属于一个符号,而另一个上下问环境中可能属于完成不用的另一个符号。1.1 =不同于== 在C语言中符号=作为赋值运算,符号==作为比较,一般而言赋值运算相对于比较运算出现得更频繁,因此字符较少的符号=就被赋予了更常用的含义——赋值操作。此外,在C语言中赋值符号被作为一种操作符对待,因而重复进行赋值操作(如a=b=c)可以很容易地书写,并且赋值操作还可以被嵌入到更大的表达式中。 但是,这种使用上的便利性可能导致一个潜在的问题. 阅读全文
posted @ 2011-11-20 21:06 it笨笨 阅读(2610) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示