第二部分 基本语言
第三章 C++ 数据类型
1. 当一个数值例如1出现在程序中时,它被称为文字常量literal constant ,称之为文字是因为我们只能以它的值的形式指代它;称之为常量是因为它的值不能被改变。0 是int 型,而3.14159 是double 型的文字常量,文字常量是不可寻址的nonaddressable,尽管它的值也存储在机器内存的某个地方但是我们没有办法访问它们的地址。
2. 如果两个字符串或宽字符串在程序中相邻,C++就会把它们连接在一起并在最后加上一个空字符。例如
"two" "some"
它的输出结果是twosome。
3. C++关键字
4. 如果一个变量是在全局域global scope 内定义的,那么系统会保证给它提供初始值0。如果变量是在局部域local scope 内定义的,或是通过new 表达式动态分配的则系统不会向它提供初始值0 。这些对象被称为是未初始化的uninitialized,未初始化的对象不是没有值而是它的值是未定义的undefined,与它相关联的内存区中含有一个随机的位串可能是以前使用的结果。
5. 当指针持有0 值时,表明它没有指向任何对象。
6. const double *cptr(其指向的内容不变),cptr 是一个指向double 类型的const 对象的指针,我们可以从右往左把这个定义读为cptr,是一个指向double 类型的被定义成const 的对象的指针。
7. int errNumb = 0;
int *const curErr = &errNumb;
curErr 是指向一个非const 对象的const指针,我们可以从右拄左把定义读作curErr,是一个指向int 类型对象的const 指针,这意味着不能赋给curErr其他的地址值,但可以修改curErr 指向的值。
8. 指向const 对象的const 指针的定义就是将前面两种定义结合起来例如
const double pi = 3.14159;
const double *const pi_ptr = π
在这种情况下pi_ptr 指向的对象的值以及它的地址本身都不能被改变,我们可以从右往左将定义读作pi_ptr ,是指向被定义为const 的double 类型对象的const 指针。