【C知识点】函数地址

简介: 【C知识点】函数地址

函数地址

函数是空间,函数名就是这个空间地址的常量值的代号。

所以我们可以利用数组,来保存函数的地址,通过数组对函数进行访问。

普通函数调用


我们可以通过 switch 来对函数进行调用,但是这存在的问题就是如果我想要对增加删除或修改函数名称,我都要去 switch 里面进行修改,非常的不方便。

void test01()
{
  int day;
  printf("input day:");
  scanf("%d", &day);
  switch (day)
  {
  case 1:
    do_music();
    break;
  case 2:
    do_game();
    break;
  case 3:
    do_book();
    break;
  default:
    break;
  }
}


数组函数

所以我们可以定义一个数组空间,保存函数的地址,每次调用时直接调用数组即可,这样对于函数的设置以及调用是分开来的。我们调用的函数就可以固定的一段代码,而对于函数的设置可以通过数组保存,在其它地方就可以进行修改,非常的方便。

void test02()
{
  //定义一个数组空间,保存key,每把钥匙都是函数行为
  void (*events[3])(void);
  //设置每天做的事情
  events[0] = do_music;
  events[1] = do_game;
  events[2] = do_book;
  //循环每天做的事情
  for (int i = 0; i < 3; i++)
    events[i]();
}


目录
相关文章
|
6天前
|
存储 C语言
【C语言基础】一篇文章搞懂指针的基本使用
本文介绍了指针的概念及其在编程中的应用。指针本质上是内存地址,通过指针变量存储并间接访问内存中的值。定义指针变量的基本格式为 `基类型 *指针变量名`。取地址操作符`&`用于获取变量地址,取值操作符`*`用于获取地址对应的数据。指针的应用场景包括传递变量地址以实现在函数间修改值,以及通过对指针进行偏移来访问数组元素等。此外,还介绍了如何使用`malloc`动态申请堆内存,并需手动释放。
|
4月前
|
编译器 C++
【C++进阶】引用 & 函数提高
【C++进阶】引用 & 函数提高
字符串的进阶练习案例(接上一节)
字符串的进阶练习案例(接上一节)
44 0
指针和数组笔试题解析【上篇】
指针和数组笔试题解析【上篇】
64 1
指针和数组笔试题解析【下篇】
指针和数组笔试题解析【下篇】
80 0
|
存储 C语言
进阶C语言 第二章-------《进阶指针》 (指针数组、数组指针、函数指针、回调指针)知识点+基本练习题+深入细节+通俗易懂+完整思维导图+建议收藏(二)
进阶C语言 第二章-------《进阶指针》 (指针数组、数组指针、函数指针、回调指针)知识点+基本练习题+深入细节+通俗易懂+完整思维导图+建议收藏(二)
|
存储 C语言
进阶C语言 第二章-------《进阶指针》 (指针数组、数组指针、函数指针、回调指针)知识点+基本练习题+深入细节+通俗易懂+完整思维导图+建议收藏(一)
进阶C语言 第二章-------《进阶指针》 (指针数组、数组指针、函数指针、回调指针)知识点+基本练习题+深入细节+通俗易懂+完整思维导图+建议收藏(一)
c++第十篇结构体例子
c++第十篇结构体例子
AcWing语法基础课笔记 第七章 类、结构体、指针、引用
类可以将变量、数组和函数完美地打包在一起。 ——闫学灿
88 0