该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
华南理工大学周霭如 教授编写的《C++程序设计基础(第3版)》,是一本好书,值得一读。下面就来谈谈我的读书理解
关于“运算符”概念理解。本书在第8页,有一段文字:
运算符是对数据进行操作的简洁表达法,以单词的形式调用系统预定义函数。这句话对运算符说得特别透切。比如+(加)这个符号,写法很简单,就是一个+,是单词的形式,它的作用就是对数据进行加的操作,它为啥能“加”呢?,原来“+”的背后是系统预编好的函数,表面上使用“+”,实际上通过它来调用系统已经编好的函数,了解这一点,后面的运算符重载就好理解了。作者高明之处,就在于,把运算符与系统预定义函数联系在一起。我们懂得了,原来像“+”这类运算符,它们代表了系统预定义函数。使用时,就是调用系统预定义函数。调用系统预定义函数或用户编的函数无处不在。
关于“类型”概念理解。本书第9页上有一段文字:
数据“类型”是对数据的抽象。类型相同的数据有相同的表示形式、存储格式以及相关操作。
这句话把C++这个语言的特点说明了,“类型”是它的特点,有三点1)有相同的表示形式;2)存储格式;3)相关操作。本书在10页举了一个例子:
0000 0000 0100 0001
书中分析这个二进制位串时有一段话讲:解释为char类型时,表示两个字符:一个空字符和一个字符A.为什么能表示两个字符?书中讲“内存以字节为基本存储单位”,何为基本存储单位?原来每八位为一个字节,每八位就有一个地址值,字符型(char)数据占一个字节,显然,在 0000 0000 0100 0001中有两个字节,有两个地址,空字符占一个字节,字符A占一个字节。各自对应各自的地址。这是最基本的概念,在WINDOWS编程中,有下列代码:
wndclass.style = CS_HREDRAW |CS_VREDRAN;
这段代码中将CS_HREDRAW |CS_VREDRAN赋值给 wndclass.style,初学者不好理解,为啥style能“同时容纳CS_HREDRAW和CS_VREDRAN”,道理就在我们上面所分析的那样。
深刻理解书中讲内存以字节为基本存储单位的含义,这句话背后就是每八位就有一个地址,就是一个字节为一个地址,整型(int)占4字节,它就有4个地址,第一个字节地址(可以理解首地址)就是某个整型变量的地址。明白了这一点,像数组这类数据类型,所占的字节很“多”,也是第一个元素的第一个字节地址就是这个数组的的地址。