int(*create(int i))[3] {
static int a[] = {1,2,3};
return &a;
}
void (*func)(int a) {};
int (*func2(int a)) {return &a;}
int main() {
create(4)[0][1];
return 0;
}
我遇到了与create
类似的函数定义。我的理解是函数具有以下语法。
return_type function_name(parameters){definition}
我知道可以使用函数指针,并且它们的语法类似于以上代码段中的func
。我无法判断create
函数是否与函数指针有关。
我认为func2
与create
的语法相似。您能否引导我了解create
的工作方式以及如何推断其返回类型?另外,据我所知,函数定义不需要在末尾使用分号,但是由于某些原因,当我从func
定义的末尾删除分号时,程序无法在MSVC中进行编译。是什么原因造成的?