1.数组指针
     例如整型数组指针 int (*p)[] ,他的主要的作用是用来指向二维数组的。
int matrix[2][10]; 
int (*p)[10]=matrix;  //间接访问高于下标引用
printf("%d",(*p)[1]);
2.指针数组
     int *p[10];   在函数形参里处理指针数组时,在代码块中会用到指针的指针,即int **P.
example:
     char *p[]  //下标引用高于间接访问
     {
         "do",
         "for",
         "if",
         "register",
         NULL
     }
     printf("%c",p[0][0]);
3.指针函数
  int *f ();//f是一个函数,它返回的类型是指向整型的指针。
4.函数指针
  int (*f) ();//f是一个函数指针,它所指向的函数返回一个整型值。常用于回调函数
example:
  int f();
  int (*pf)(int i)=&f;
  int ans;
  ans = f(25);//1
  ans = (*pf)(25);//2
  ans = pf(25);//3
  //这三条语句效果都是一样的。第一条语句简单地使用名字调用函数f,函数名f首先被转换为一个函数指针,该指针指定函数在内存中的位置。然后,函数调用操作符调用该函数,执行开始于这个地址的代码。第2条语句对pf执行简接访问操作,它把函数指针转换为一个函数名。
 
 
 
 
 
 
posted on 2017-05-02 09:44  wengweng_man  阅读(126)  评论(0编辑  收藏  举报