【自增&自减】
指针变量可以进行自增运算和自减运算。 p = p+1; 可以写成 p++ 或者 ++p
自增就是指针变量往后移,自减就是指针变量向前移。
就单纯的自增而言,p++和++p是一样的。
只有变量,才可以自增&自减!
【数组VS指针】
指针访问速度更快!比数组快!
原因:指针可以直接访问,而数组每次访问,都需要重新计算首地址+下标。
【相同类型的指针可以比大小】
两个相同类型的指针,才可以使用关系运算符,比大小!
【程序代码1】


#include <stdio.h>
int main(void)
{
int a[] = {123, 456, 666, 888, 999};
int *p = a;
printf("*(p++) = %d, *(++p) = %d\n", *(p++), *(++p));
return 0;
}
【程序代码2】
使用指针变量,输出数组元素。
【数组VS指针】
指针访问速度更快!比数组快!
原因如下:
1 只使用数组,引用数组元素时,需要借助数组下标形式进行引用。
这样,每次都需要重新计算数组a表示的首地址,再加上下标,才能找到该元素。
2 数组+指针结合的程序
使用指针p,每次指针都是直接指向所需元素,不需要计算。
举例:
1 只使用数组的程序
数组下标从0开始计算。
当需要数组中第二个元素 a[1],先计算数组a 表示的首地址,再+1 ,找到元素 a[1]。
当需要数组元素a[2],先计算数组a 表示的首地址,再+2,找到元素 a[2]。
2 数组+指针结合的程序
int * p = NULL; //把指针初始化
p = a; //假设数组已经初始化
当第一次执行++p ,此时指针p 直接指向元素a[1]。
当第二次执行++p, 此时指针p 直接指向元素a[2]。


#include <stdio.h>
int main(void)
{
int a[] = {11, 22, 33, 44, 55};
int *p = NULL; //先把指针变量初始化
for(p=a; p<(a+5); ++p)
{
printf("%d\n", *p);
}
return 0;
}