前言
C语言有多种数据类型,如:
char(字符型),int(整型),short(短整型),long int(长整型),long long,float(单精度浮点型),double(双精度浮点型),
在这些类型后加上*就表示指针,不同类型表示该指针指向不同类型的数据。除以上类型的指针外,还存在一些特殊的指针,如数组指针,函数指针等。
一、数组指针
1.什么是数组指针
数组指针任然是一个指针,该指针指向的是一个数组,例如字符指针char*,字符是该指针指向目标的数据类型
2.如何定义一个数组指针?
int (p)[10];如上,括号的优先级大于[],因此p与结合,p是一个指针变量,指向的是一个整型数组
3.数组指针的用途是什么?
作为形参接收二维数组的首地址(二维数组的每个元素都是一个一维数组)
二、函数指针
1.什么是函数指针,如何定义
指向函数的指针,例如
void test()
{
}
void (*p)()=&test;
p就是一个函数指针,它指向的是一个返回类型为void,没有函数参数的函数
我们都知道指针变量在解引用后会得到指针变量指向目标的值,例如int b=1;int *a=&b;a是指向整型数据类型b的指针变量,*a=b=5,
那么函数指针解引用得到的会是什么呢?
2.函数指针的用途
接收函数地址