1.数组的维数必须用大于等于1的常量表达式定义。此常量表达式只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象。非const变量以及要到运行阶段才知道其值的const变量都不能用于定义数组的维数。
2.在函数体外定义的内置数组,其元素均初始化为0;在函数体内定义的内置数组,其元素无初始化。
3.不管数组在哪定义,如果其元素为类类型,则自动调用该类的构造函数进行初始化;如果该类没有默认构造函数,则必须为该数组的元素提供显式初始化。
4.一个数组不能用另外一个数组初始化,也不能将一个数组赋值给另一个数组。
5.如果要在一个声明句中定义两个指针,必须在每个变量标识符前再加符号*声明:如string *ps1, *ps2。
6.void*指针可以保存任何类型对象的地址。它只支持几种有限的操作:与另一个指针进行比较;向函数传递void*指针或从函数返回void*指针;给另一个void*指针赋值。
7.在表达式中使用数组名时,该名字会自动转换为指向数组第一个元素的指针。
8.两个指针之间的减法操作的结果是标准库类型ptrdiff_t的数据。与size_t类型一样,ptrdiff_t也是一种与机器相关的类型,在cstddef头文件中定义。size_t是unsigned类型,而ptrdiff_t则是signed整型。
9.如果在自由存储区中创建的数组存储了内置类型的const对象,则必须为这个数组提供初始化,如const int *pci = new const int[100](); C++允许定义类类型的const数组,但该类必须提供默认构造函数。
10.删除0值的指针是合法的,但是这样做没任何意义。如int *ip =0; delete ip;
本文详细介绍了C++中数组的维度定义规则、内置数组的初始化方式、类类型数组的初始化、数组间的操作限制、指针的声明与使用、void*指针的功能以及表达式中数组名的转换规则。
778

被折叠的 条评论
为什么被折叠?



