1。编译程序时编译器需要确定数组的大小,元素类型,所以下标表达式也必须有确定值,不能为变量名(因为变量在编译之后才知道具体值),也不能为浮点型表达式。
2。以下标方式访问数组
用下标方式表示的数组元素,也称为下标变量。常用形式为:
数组名[表达式]
其中,“[]”是下标运算符。下标运算符的左操作数是指针,右操作数是偏移值。下标运算通过指针的地址、指针的关联类型和偏移值计算地址,并以名方式访问对象。
3。C++不会对数组元素的下标表达式作界限检查,操作出界时可能会引起意想不到的错误,C++对指针方式访问数组也不会进行界限检查。这是值得程序员注意的。
4。对于一个已经定义的数组,数组名是数组的指针,即数组占有的内存空间的首地址。
5。以指针方式访问数组。
a == &a[0];
a+1 == &a[1];
a+i == &a[i];
*(a+i) 是访问数组的指针方式。既*(a+i) = a[i];
6。数组名是指针常量(指针类型的常量,不能修改其值)。
7。指针数组:元素是指针!
类型 标识符[表达式];
可以根据运算符优先关系进行分析:“[]”优先级最高,pi首先与“[]”结合,pi是数组。对于一个数组,前面还要定义数组元素的类型。整型指针类型符“int”说明了数组元素的类型,所以,pi是元素类型为整型指针数组。
可以指向与指针关联类型相同的变量,也可以用写入与指针数组关联类型相同的指针或数组。
例:指向同类型变量
int a=11,b=22,c[2]={31,32};
int *pi[4];
pi[0] = &a; //指向变量
pi[1] = &b;
pi[2] = &c[0]; //指向同类型的数组元素
pi[3] = &c[1];
例:指向同类型的数组
double aa[2]={1.1,2.2}, bb[2] = { 3.3, 4.4 },
double*pf[3]; //定义指针数组
pf[0]=aa; //写入数组地址
pf[1] = bb;
8。指向函数的指针数组:是元素为指向函数的指针数组!
以定义指向函数类型为int (i