函数与指针

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数与指针相关的知识,希望对你有一定的参考价值。

1.C语言中函数有自己特定的类型

2.函数的类型由返回值参数类型参数个数共同决定

3.C语言中通过typedef为函数类型重命名

4.函数指针用于指向一个函数

5.函数名是执行函数体的入口地址

6.可通过函数类型定义函数指针:Func Type* pointer

7.也可以直接定义:type (*pointer)(parameter list) pointer为函数指针变量名,type为指向函数的返回值类型,paramter list为指向函数的参数类型列表

#include <stdio.h>

typedef int(FUNC)(int);

int test(int i)
{
    return i * i;
}

void f()
{
    printf("Call f()...\n");
}

int main()
{
    FUNC* pt = test;//函数指针赋值
    
    void(*pf)() = &f;
    
    pf();
    (*pf)();
    
    printf("Function pointer call: %d\n", pt(2));
}

函数和数组指针的定义区别为:数组指针用&取出地址,而函数用&和不用都表示函数的地址。

回调函数

1.回调函数是利用函数指针实现的一种调用机制

2.回调机制原理:调用者不知道具体事件发生的时候需要调用的具体函数,被调函数不知道何时被调用,只知道被调用后需要完成的任务,当具体事件发生时,调用者通过函数指针调用具体函数

3.回调机制的将调用者和被调函数分开,两者互不依赖。


指针阅读技巧解析

1.从最里层的圆括号中未定义的标识符看起

2.首先往右看,再往左看

3.当遇到圆括号或者方括号时可以确定部分类型,并调转方向

4.重复2.3步骤,直到阅读结束、

以上是关于函数与指针的主要内容,如果未能解决你的问题,请参考以下文章

使用 std::thread 函数 C++11 将指针作为参数传递

片段中的 EditText 上的空指针异常 [重复]

函数指针与回调函数

使用片段的谷歌地图

C++ - 指针和“智能指针”

结构体中函数指针与typedef关键用途(函数指针)