1、当指针指向数组元素时,C语言允许对指针进行数值运算,支持并且只支持以下三种运算
(1)指针加上一个整数
(2)指针减去一个整数
(3)两个指针相减
2、两个指针的比较
p1=&a[1];
p2=&a[2];
则p2>p1
3、若数组有N个元素,则虽然a[N]不存在,但经常使用
for(int *p=&a[0]; p<&a[N]; p++)
for(int *p=&a[0]; p<a+N; p++)
4、指针与数组的两种关联形式:
(1)上面所述的算术运算
(2)用数组的名字作为指向第一个元素的指针
a+i等效于&a[i]
*(a+i)等效于a[i]
5、对于形式参数而言,声明为数组跟声明为指针是一们的。但是对于变量而言,声明为数组跟声明为指针是不同的。声明为数组导致编译器会为数组根据元素的数量预留空间,但声明为指针只会导致编译器为一个指针变量分配空间。