一、数组使用指针
1、数组名是数组元素首地址。
2、只有在函数原型或函数定义头中,才可以用int arr[]代替int * arr
int sum(int * arr,int n);
int sum(int arr[],int n);//等效
3、一个整形数组表名处理元素的个数有2种方式
/*方式1*/int sum(int * arr,int n);
/*方式2*/int sum(int * start,int * end);
4、arr[i]和*(arr+i)是等价的
二、指针操作
1、赋值:可以把指针赋给指针;
2、解引用:*运算符给出指针指向地址上存储的值;
3、取址:和所有变量一样,指针变量也有自己的地址和值;
4、指针与整数相加:可以使用+运算符把指针与整数相加,或整数与指针相加。整数会和指针所指向类型的大小(以字节为单位)相乘,然后把结果与初始地址相加;
5、递增指针:递增指向数组元素的指针可以让指针移动至数组的下一个元素;
6、指针减去一个整数:可以使用-运算符把指针与整数相-,不可以整数减指针。整数会和指针所指向类型的大小(以字节为单位)相乘,然后初始地址减去乘积;
7、递减指针:与递增类似;
8、指针求差:通过用于两个指向同一数组不同元素的指针,通过求差计算出两元素之间的距离;
9、比较:指向相同类型的指针才可以比较。
三、注意事项
1、千万不要解引用未初始化的指针。创建一个指针时系统只分配了存储指针本身的内存,并未分配存储数据的内存。因此,在使用指针之前,必须先用已分配的地址初始化它。
int * pt;//未初始化的指针
*pt = 5;//致命错误