对于c++指针的问题


int plus(int b) {
    return b + 1;
}
int main() {
    void* p = NULL;
    int result 0;
    p = plus;
    result = ((int(*)(int)p)(10);
    cout << result << endl;
    return 0;
}

这串代码好像有问题?请问怎么改?
还有就是result = ((int(*)(int)p)(10);是什么意思,绕的有点晕

函数指针也不是这么定义的啊

int (*p)(int);
p = plus;
result = (*p)(10);


int plus(int b) 
{
    return b + 1;
}
int main() 
{
    int (*p)(int);
    int result =0;
    p = plus;
    result =  (*p)(10);
    cout << result << endl;
    return 0;
}