特殊指针
指针和多维数组
指针索引和数组下标索引作用相同
int a[2][3]={{1,2,3},
{4,5,6}};
int (*p)[3] = a;
则a[1][2]==*(*(a+1)+2)==*(*(p+1)+2)==6
void指针
void指针可以指向任意数据类型,可以用来在任意类型指针之间转换,但是不能直接对void指针解引用。
int a = 110;
int *pa = &a;
char *b = 'bbb';
void p;//报错,不能用void 定义变量
void *p;
p = pa;
printf("%d\n",*p);//报错,不能对void指针进行解引用
printf("%d\n",(int *)p);//ok
p = b;
printf("%s\n",p);//ok
NULL指针
当你不清楚你的指针要指向那里时,请把它初始化为NULL
int *p = NULL;