C++Primer学习笔记4 数组和指针

来源:互联网 发布:哈希算法 编辑:程序博客网 时间:2024/05/16 15:49

1、数组定义中的类型名可以是内置类型或者类类型,除引用外,数组元素的类型还可以是任意的复合类型。没有所有元素都是引用的数组。

2、在函数体外定义的内置数组,其元素均初始化为0;在函数内部定义的内置数组,其元素无初始化;不管数组在哪里定义。如果其元素为类类型,则自动调用该类的默认构造函数进行初始化;如果该类没有默认构造函数,则必须为该数组的元素提供显示初始化。

3、一个有效的指针必然是以下三种状态之一:保存一个特定对象的地址,指向某个对象后面的另一个对象,或者是0值。

4、void*指针只提供几种有限操作:与另一个指针进行比较,向函数传递void* 指针或者从函数返回void*指针;给另一个void*指针赋值。不允许使用void*指针操纵它所指向的对象。

5、指针提供间接操纵其所指向对象的功能。

6、两个指针减法操作的结果是标准库类型ptrdiff_t的数据。ptrdiff_t 是与size_t 都是机器相关的类型。size_t 是unsigned类型, ptrdiff_t是signed类型的。

7、指针加上整数其结果还是指针。

8、解引用操作符的优先级比加法操作符的优先级高。

9、指针是数组的迭代器。

10、标准库函数strlen总是假定其参数字符串以null字符结束。

11、传递给标准库函数<cstring>中的指针必须具有非零值,并且指向以null结束的字符数组中的第一个元素。

12、调用new创建长度为0的数组是合法的,new返回的是有效的非0指针,该指针与new返回的其他指针不同,不能进行解引用。

0 0