如何在C语言中声明含4个无参void函数指针的数组?
声明并初始化含4个无参void返回函数指针的数组
你的写法已经很接近了,问题出在初始化的语法上——C语言里数组初始化需要用=连接声明和初始化列表。
正确的声明+初始化写法
如果是全局变量或者带static修饰的局部变量,直接这样写:
void (*a[4])() = {insert, search, update, print};
普通局部变量在C99及之后的标准里也可以用这种方式初始化。
先声明再赋值的写法
如果需要分开操作,也可以先声明数组,再逐个给元素赋值:
// 声明一个包含4个函数指针的数组,指针指向无参、返回void的函数 void (*a[4])(); // 逐个赋值 a[0] = insert; a[1] = search; a[2] = update; a[3] = print;
声明含义拆解
void (*a[4])() 的结构可以拆成:
a[4]:表示这是一个有4个元素的数组(*...):数组的每个元素都是函数指针void ():指针指向的函数是无参数、返回值为void的类型
内容的提问来源于stack exchange,提问作者Alexandros Fourtounis
相关产品推荐
相关产品推荐

