函数声明末尾的方括号代表什么?

时间:2019-11-25 15:34:54

标签: c++ visual-c++

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函数是否与函数指针有关。 我认为func2create的语法相似。您能否引导我了解create的工作方式以及如何推断其返回类型?另外,据我所知,函数定义不需要在末尾使用分号,但是由于某些原因,当我从func定义的末尾删除分号时,程序无法在MSVC中进行编译。是什么原因造成的?

0 个答案:

没有答案