August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
类型是C++和大多数编程语言的核心内容。接下来我们以更技术性的观点更近距离地讨论类型,特别是我们在计算过程中用来存储数据的对象类型。长远来看这会节省你的时间,它也可以避免引起你的混淆。
·类型定义一组可能的值与一组运算(对于一个对象)。
·对象是用来保存一个指定类型值的一些内存单元。
·值是根据一个类型来解释的内存中的一组比特。
·变量是一个命名的对象。
·声明是命名一个对象的一条语句。
·定义是一个声明,但同时也为对象分配了内存空间。
通俗地说,我们可以将一个对象看作一个盒子,我们可以将指定类型的值放入它。一个int盒子可以保存整数,例如7、42与-399。一个string盒子可以保存字符串值,例如“Interoperability”、“tokens:!@#$%^&*”与“Old MacDonald had a farm”。我们可以用图表来考虑:
由于string要跟踪它保存的字符数,因此string比int的表示方法更复杂。注意,一个double保存一个数字,而一个string保存的是字符序列。例如,x保存数字1.2,而s2保存三个字符'1'、'.'与'2'。字符和字符串常量的引号并不保存。
每个int的大小是相同的;也就是说,编译器为每个int分配相同的固定大小的内存。在一个典型的台式计算机中,这个大小是4个字节(32个比特)。与此类似,bool、char与double是固定大小的。在通常情况下,你会发现台式计算机为一个bool或char分配1个字节(8个比特),为一个double分配8个字节。注意,不同类型的对象使用不同大小的空间。特别地,一个char比一个int占用更少的空间,string不同于double、int与char,不同大小的字符串占用不同大小的空间。 ...