这在C中意味着什么

时间:2017-03-23 14:07:28

标签: c arrays function-pointers

我知道odd表示一个函数指针,它不带参数并返回一个整数指针,但以下语法在C中的含义是什么:

int  *(*func)()

关于如何在C中阅读此类语法的任何解释都非常有用。

2 个答案:

答案 0 :(得分:3)

func是一个函数,返回一个指向int的指针数组的指针。

参考链接:http://gateoverflow.in/35193/regarding-pointers

答案 1 :(得分:1)

这是一个返回数组指针的函数。写得更明确,这里是各个部分的含义:

item_type (*function_name(parameters))[array bounds];

其中item_type是指向数组的数组项的类型。

数组指针是指向未知大小which is actually allowed by C的数组的指针,但不过分有用。

总的来说,这个功能看起来并不是很有用,如果你需要这样一个奇怪的结构,你就不应该把它写成像这样的乱码。这是带有typedef的等效形式:

typedef int* array_t[];

array_t* func();