指针的进阶(下)

简介: 指针的进阶

4.函数指针

函数指针用来存放函数地址

void(*p)(int,int) = &test;

实例:

int add(int x,int y)
{
  printf("%d ", x + y);
}
int main()
{
  int (*p)(int,int) = &add;
  p(3, 4);
  (*p)(3, 4);
  (**p)(3, 4);
  (***p)(3, 4);
}

看出p  *p    **p     ***p,都是该函数。

5.函数指针数组

用来存放函数指针的数组

int add(int x,int y)
{
  printf("%d ", x + y);
}
int test1(int x, int y)
{
  printf("%d ", x - y);
}
int test2(int x, int y)
{
  printf("%d ", x * y);
}
int main()
{
  int (*p1)(int, int) = &add;//函数指针
  int (*p2)(int, int) = &test1;//函数指针
  int (*p3)(int, int) = &test2;//函数指针
  int (*pp[3])(int, int) = { p1,p2,p3 };//函数指针数组
}

6.指向函数指针数组的指针

用来存放函数指针数组的地址

int add(int x,int y)
{
  printf("%d ", x + y);
}
int test1(int x, int y)
{
  printf("%d ", x - y);
}
int test2(int x, int y)
{
  printf("%d ", x * y);
}
int main()
{
  int (*p1)(int, int) = &add;//函数指针
  int (*p2)(int, int) = &test1;//函数指针
  int (*p3)(int, int) = &test2;//函数指针
  int (*pp[3])(int, int) = { p1,p2,p3 };//函数指针数组
  int(*(*ppp)[3])(int, int) = &pp;//指向函数指针数组的指针
}

后续会对该文章内容进行详细补充

相关文章
|
6月前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
6月前
|
机器学习/深度学习 搜索推荐 算法
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
【再识C进阶2(下)】详细介绍指针的进阶——利用冒泡排序算法模拟实现qsort函数,以及一下习题和指针笔试题
|
6月前
|
C语言
指针进阶(回调函数)(C语言)
指针进阶(回调函数)(C语言)
|
6月前
|
存储 C语言 C++
指针进阶(函数指针)(C语言)
指针进阶(函数指针)(C语言)
|
6月前
|
编译器 C语言
指针进阶(数组指针 )(C语言)
指针进阶(数组指针 )(C语言)
|
6月前
|
搜索推荐
指针进阶(2)
指针进阶(2)
53 4
|
6月前
指针进阶(3)
指针进阶(3)
46 1
|
6月前
|
C++
指针进阶(1)
指针进阶(1)
47 1
|
6月前
|
存储 安全 编译器
C++进阶之路:何为引用、内联函数、auto与指针空值nullptr关键字
C++进阶之路:何为引用、内联函数、auto与指针空值nullptr关键字
52 2
|
7月前
|
C语言
C语言进阶:进阶指针(下)
C语言进阶:进阶指针(下)
51 2