1、指针± 整数
#define N_VALUES 5
float values[N_VALUES];
float *vp;
//指针+-整数;指针的关系运算
for (vp = &values[0]; vp < &values[N_VALUES];)
{
*vp++ = 0;
}
2、指针-指针
int main()
{
int arr[10] = { 0 };
printf("%d", &arr[9] - &arr[0]);
//打印9,数组之间的个数,不是字节数。
return 0;
}
3、指针的关系运算
允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。
C语言语法规定p1只能与p2比较,不可以与p3比较。
//给数组values[N_VALUES]赋值0。
//两种方法都可以成功。
#define N_VALUES 5
for(vp = &values[N_VALUES]; vp > &values[0];)
{
*--vp = 0;//符合c语言语法。
}
for(vp = &values[N_VALUES-1]; vp >= &values[0];vp--)
{
*vp = 0;//不符合c语言语法。
}