C++程序设计教程--读书笔记 第三章 数据类型

第三章
 
一、知识点
1、数据类型是指:(P84)
(1)、一定的数据在计算机内部的表示方式;
(2)、该数据所表示的值的集合;
(3)、在该数据上的一系列操作。
 
2、通常的计算机语言在计算机内部都是以二进制补码形式表示整数的。将十进制正整数转换成二进制补码形式的整数。转换的方法是采用“除2取余法”,即对被转换的十进制整数除以2,取其余数,并将商再除以2,再取余数,直到商为0.每次除下来的余数按先后构成了从低位到高位的二进制整数。例如:(P85)

3、一个十进制负整数,表示成二进制补码形式的整数时,该负整数的对应正整数先转换成二进制数,然后“取补”,规则是“取反加一”,例如:

用二进制补码表示的数中,以最高位是否0来判断该数是否整数。绝对值最大的负整数时-128,即10000000。(P86)
 
4、枚举型是对整数区间的自定义类型,用户还可以为区间中的值取名,例如:(P91)
enum Color{ Red = 5, Green, Yellow, Blue = 20, Orange };
枚举Color是一个类型,比如上面Green对应整数值6,Yellow对应7,Orange对应21。默认第一个值为0。
枚举的整数区间为包含头尾整数取值的最小2的幂次值。因此Color的整数区间为

。枚举变量在该整数范围内取值和运算都是合理的。

 
5、十进制浮点数表示为二进制浮点数时,对于整数部分,采用“除2取余法”,对于小数部分,采用”乘2取整法“。例如:(P93)

6、看一个例子:(P97)
char * str = "Hello";
cout << *str << endl;
cout << str << endl;
str是字符指针变量。*str是字符指针变量的间接引用。即,若str指向”Hello“的首地址,则*str表示该地址代表的空间上的值——‘H’。
 
7、由于C-串类型是字符指针,因此,比较两个相同C-串的时候,会因空间位置的不同而不同。而且,分别存储两个相同C-串的字符数组,其数组比较也会是不相同的。因为这里比较的都是地址。(P98)
 
8、C-串的函数:strcmp(a, b)  比较;strcat(a, b)  连接;  strrev(a)  倒置;  strset(a, 'a')  设置(将该字符串所有字符均设为a);
strstr(a, "ell")  查找a串中是否有”ell“这个子串; strchr(a, 'c') 查找a串中是否有 ‘c’这个字符。
 
9、关于string的相关操作:(P100)
reverse(a.begin(), a.end());  倒置;   a.replace(0, 9, 9, 'c');  设置;  a.find("ell") 查找串;  a.find('c')  查找字符;
 
10、getline总是将行末的回车符过滤掉。
 
11、vector是向量类型,它是一种对象实体,具有值,所以可以看作是变量。它可以容纳许多其他类型的相同实体,如若干个整数,所以称其为容器。(P107)

因此,创建向量时,不但可以整体向量复制性赋值,还可以选择其他容器的部分元素来定义向量和赋值。特别地,向量还可以从数组获得初值。例如:

12、向量元素位置也属于一种类型,称为遍历器。遍历器不单表示元素位置,还可以在容器中前后挪动。每种容器都有对应的遍历器。向量中的遍历器类型为:vector<int>::iterator。因此,如果要输出向量中的所有元素,可以有两种循环控制方式:

第一种形式是下标方式,a[i]是向量元素操作,这种形式和数组一样;第二种形式是遍历器方式,*it是指针间访形式,它的意义是it所指向的元素值。(P108)
 
13、向量中的操作都是通过使用成员函数来完成的。它的常用操作有:(P108)

14、指针变量所占的空间大小总是等同于整型变量的大小。(P115)
 
15、指针的常量性也分两种:指针常量和常量指针。(P117)
指针常量是相对于指针变量而言的,也就是指针值不能修改的指针。
常量指针是指向常量的指针。

16、const修饰只是限定指针的操作,但不能限定空间上实体的可改变性。因为一个实体可能被不止一个变量所关联,所以实体被其他关联变量改变是可能的。(P117)
 
17、当建立引用时,用一个有具体类型的实体去初始化别名,之后,别名便与关联其实体的变量(或对象)享受访问的同等待遇。例如:(P119)

引用定义时必须初始化,这是它和指针根本不同的地方。给引用初始化的总是一个内存实体。

18、引用和指针的差别,指针可以操纵两个实体,一个是指针值,一个是指向的值,因此指针可以改变关联的实体,即指向的实体。而引用只能操纵一个实体。(P119)
 
19、引用与实体的关系,看似直接访问,其实是指针的间接访问。引用不能操作自身的地址值,每次访问它,其实就是在访问所指向的实体。与指针比较,引用隐去了地址操作,引用封锁了这种地址的可修改性。(P119)
 
二、问题
1、string流? (P102)
posted on 2012-05-01 09:49  谷堆旁边  阅读(244)  评论(0编辑  收藏  举报