数组指针
直接理解为指向数组的指针,一般用于二位数组引用程序,形式如下
下面程序中用在二维数组中,把这个数组指针看作二维数组的第一维的指向:
用在一维数组中(本质还是二维数组)如下,类似指向这样的数组
指针数组
内部元素是指针的数组下面程序截取
函数指针
指向函数的指针;本质是一个指针,形如下面的格式
指针函数
返回值是指针的函数
总结
分析记忆
可参考
整体记忆规律:先看变量名先和那个部分组成一组,决定了整个变量表示的含义;然后剩下的就是描述变量元素的性质
拓展猜测
根据上面的结论可以推测出下面两种数据的对象含义
包含指向函数的指针数组
程序来源
#include<stdio.h>
int add(int x, int y)
{return x + y;
}
int sub(int x, int y)
{return x - y;
}
int mul(int x, int y)
{return x * y;
}
int div(int x, int y)
{return x / y;
}
int main()
{int (*parr[4])(int x, int y) = { add,sub,mul,div };return 0;
}
返回指向数组的指针函数
下面是对应的实例代码
#include <stdio.h>int arr[5];int (*get_array())[5] {int i;for (i = 0; i < 5; i++) {arr[i] = i;}return &arr;
}int main() {int (*arr_ptr)[5] = get_array();for (int i = 0; i < 5; i++) {printf("%d ", (*arr_ptr)[i]);}return 0;
}