指针与数组

来源:互联网 发布:php api接口 编辑:程序博客网 时间:2024/05/16 07:08

指针和数组的关系

数组指针

数组指针,顾名思义是的数组的指针,本质上是一个指针指向一个数组。
int (*p) [5] = NULL; // p 是一个指针,指向一个数组,数组的元素类型为int.

指针数组

指针数组,指针的数组,本质上是一个数组,数组中元素的类型为指针。
    int *p [5]; // []运算符的优先级高于*运算符,所以p是一个数组,数组中元素的类型为int指针.

函数指针

与数据一样,函数也有自己的地址,函数的地址就是内存中存放函数语言代码的起始地址。函数指针指向的就是这个地址。由指针所指向的类型可以知道指针所指向的内存区域的大小。

简单的函数指针

    void func(int, int) {} //     void (*p) (int, int) = NULL; // p 为一个指针,指向一个函数,这个函数的返回值为void,参数为(int, int).    p = func; //赋值    p(1,2); //使用方法

函数指针数组

函数指针数组,函数指针的数组,本质上是一个数组,数组的元素为函数指针。
    void (*p[5])(int, int); //p 是一个数组,数组的元素个数为5,类型为指针,指针的类型为函数指针.

函数指针数组的指针

函数指针数组的指针,其实就是一个指针,指向一个函数指针数组。
    void (*(*p)[5]) (int, int) = NULL; //p是一个指针,指向一个数组,这个数组是一个函数指针数组,数组的个数为5个,元素类型为函数指针,函数的返回类型为void,参数为两个int.
0 0