首页
学习
活动
专区
圈层
工具
发布

面试题008:请解释一下C语言中的函数指针,并且给出一个例子进行说明?

int a, int b) { return a + b; } int subtract(int a, int b) { return a - b; } int main() { int (*funcPtr...)(int, int); // 声明一个函数指针变量 funcPtr = add; // 函数指针指向add函数 int result = funcPtr(2, 3); // 调用add函数,返回结果为...5 funcPtr = subtract; // 函数指针指向subtract函数 result = funcPtr(5, 2); // 调用subtract函数,返回结果为3 } 在上面的示例中...,声明了一个函数指针变量funcPtr,它可以指向返回类型为int、参数类型为int和int的函数。...首先,将funcPtr指向add函数,然后通过funcPtr调用add函数并返回结果。接着,将funcPtr指向subtract函数,再通过funcPtr调用subtract函数并返回结果。

33220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入解析C++中的函数指针与`typedef`的妙用

    函数指针的声明 void (*funcPtr)(int); // 指向一个接受int参数且无返回值的函数的指针 函数指针的使用 void exampleFunction(int num) { std...; funcPtr(5); // 调用exampleFunction return 0; } 使用typedef简化函数指针声明 typedef的基本用法 typedef用于为类型起别名...示例:typedef与函数指针 typedef void (*FuncPtr)(int); // 定义一个函数指针类型别名 void myFunction(int num) { std::cout...<< "The number is: " << num << std::endl; } int main() { FuncPtr ptr = myFunction; // 使用类型别名声明函数指针...ptr(10); return 0; } 通过typedef,我们将复杂的函数指针声明简化为一个易于理解和使用的类型别名FuncPtr,大大提高了代码的可读性。

    26910

    利用Clang探究block的本质

    FuncPtr。FuncPtr是一个函数指针,作为结构体的第四个也是最后一个成员变量。这个函数指针用于指向block的定义。Objective-C层面调用block底层就是调用的这个函数指针。...block 被强转为__block_impl类型,就可以访问FuncPtr函数,block->FuncPtr接收了block、a、b三个参数。还记得FuncPtr这个函数指针的由来吗?...block的调用就是调用这个结构体对象内的成员变量impl的名为FuncPtr的函数指针。其中FuncPtr指针指向了block的实现(即block代码块)。...函数,上面已经说过,FuncPtr就是指向函数__main_block_func_0的函数指针调用FuncPtr就相当于调用__main_block_func_0。...block的调用就是调用这个结构体对象内的成员变量impl的名为FuncPtr的函数指针。其中FuncPtr指针指向了block的实现(即block代码块)。

    7.3K20
    领券
    首页
    学习
    活动
    专区
    圈层
    工具
    MCP广场