请问C++函数指针如何赋值?

请教各位,我在书上看到函数指针,书上先声明一个函数,然后再声明一个函数指针。
再将函数赋给函数指针。但是我按照这个方式做了之后,发现报错了。请问各位这是什么
原因?
我写的代码
书上的代码
报错提示

报什么错?
int (*f)(int x); //f为声明的函数指针
f=func; //func为 int func(int x) 的函数名,要保证函数指针与被调用函数 返回值与型参一致

我反复看了题主的代码,没有发现错误,但是根据编译器报的错是将int*型数据转换为int型,那就是说你的ppp变量不是一个指针变量,但是这说不过去,请问题主代码一共就这
几行吗?

型参可以不用指定吗?直接写类型?好久没用C了

在函数里赋值才能通过,如果在全局空间声明时必须赋值。代码如下:

#include <iostream>

int func(int a) { return 0; }

static int(*ppp)(int) = func; // 方式一

void test()
{
    ppp = func; // 方式二
}

using namespace std;

int main()
{
    ppp = func; // 同方式二

    cin.get();
}

两种方法都可以,当然还有第三种方法,用typedef 进行声明,但是使用时还是必须在函数中(同方法二)

好奇emmm,那个第一个的#include "iostream" 这样也能过?【捂脸】见识少