第三章 处理数据(《C++Primer Plus》读书笔记)


 第三章  处理数据

       面向对象的本质是设计并扩展自己的数据类型。而扩展自己的数据类型是在C++的内置类型之上进行的。C++内置的数据类型分为两类:基本类型和复合类型。基本类型又分为两大类,整型和浮点型,这两大类由所占bit和有无符号位细分为若干小的类型。基础的复合类型则包括:数组、结构、字符串和指针。下面展开介绍第一类数据类型:基本类型,下一章介绍复合类型。


3.1简单变量   

       存储信息要存储三个属性:存储位置、存储内容、存储类型。C++中使用变量来完成存储信息的操作:其中变量名作为存储位置的别名,&变量名代表变量的位置(地址),声明时会指定存储的类型,变量初始化时指定存储的内容。

3.1.1关于变量名

(1)C++与C语言命名有什么区别?

       C++的变量命名规则和C语言的变量命名规则基本相同,但是ANSI C和C++存在一点区别:前者的名称只有前63个字符有效,而C++对变量名称的长度不作限制。

       注意:在C++中,以单个下划线(留给编译器,用作全局标识符)、两个下划线、大写字母打头的名称预留给实现。实现指的是编译器以及它所使用的资源。

 (2)C++中变量命名可以采取的方案?

  • 下划线命名法。
  • 单词首字母大写法(首单词的首字母不应该大写,因为首字母大写预留给实现使用 。)
  • 前缀结合单词首字母大写法。这样的好处是可以看出变量的类型。常用的前缀有:str或sz(表示以空字符结束的字符串),b(bool类型),p(表示指针),c(表示单个字符),n(表示整数值)。

3.1.2关于整型

(1)C++中整型数据所占位数遵循的规则是什么?

  • short至少16位
  • int与short至少一样长
  • long至少32位至少与int一样长
  • long long至少64位,至少与long一样长

注意:类型宽度因实现而异,不同实现相同类型的数据宽度可能不同,但都遵守上述规则。climts文件包含了关于整型的限制信息(某种类型的位数、最大值信息以符号常量的形式定义出来)。climits文件有编译器厂商提供。

(2)C语言和C++定义符号常量的形式分别是什么?

  • #define 形式定义符号常量是C-Style
  • C++使用const定义符号常量。

(2)如何检测某实现下某数据类型的字节长度信息?

可以采用sizeof()运算符。sizeof运算符返回所测类型的字节数,返回的整型数字为?型。其中 ()是可以省略的。例如

sizeof(int)和sizeof int 是等价的。

注意:运算符是内置的语言元素,对一个或多个数据进行计算,并返回一个值。

(3)变量初始化赋值运算符右边的形式可以有哪些?

表达式、字面值常量、符号常量、确定值的变量。另外还有C++风格的初始化:int x ={1};或int x{1};其中大括号中的值可以缺省,缺省的话代表0。大括号赋值的方法是以后语言发展的趋势。

(4)C++风格初始化的优点有哪些?

它具有通用性。

(5)选择整型数据的原则是什么?

int类型为c++的自然长度(natural size),自然长度指的是计算机处理起来效率最高的长度。数字为非负可选用无符号型,长度大于int可选用long甚至long long型。在节省内存的原则下,可以采用short型。

注意:变量声明后没有初始化的话,其存储的值是原内存中的值,是不确定的,因此尽量在声明变量的时候对其进行初始化。

术语:

宽度(width)

猜你喜欢

转载自blog.csdn.net/lintianyi9921/article/details/88857346